带有签名Javascript的电子邮件

带有签名Javascript的电子邮件,javascript,outlook,Javascript,Outlook,为什么下面的代码会删除默认的Outlook签名 function GetMailToInfo(attachment, body) { attachment = attachment ? attachment + lineBreak + lineBreak : lineBreak; body += lineBreak + attachment; window.location.href = "mailto:" + emailTo + "?subject=" + self.s

为什么下面的代码会删除默认的Outlook签名

function GetMailToInfo(attachment, body) {
    attachment = attachment ? attachment + lineBreak + lineBreak : lineBreak;
    body += lineBreak + attachment;
    window.location.href = "mailto:" + emailTo + "?subject=" + self.subject() + "&body=" + body;
}
我正在尝试使用以下代码生成一封电子邮件,但由于某些原因,该电子邮件在打开时没有用户的默认签名

有没有办法解决这个问题


根据@Dmitry Streblechenko的回答:

这是我编辑的代码,但电子邮件仍然打开,没有签名:

var outlook = new ActiveXObject('Outlook.Application');
var email = outlook.CreateItem(0);
var insp = email.GetInspector;
email.Subject = self.subject();
email.Display();
email.HTMLBody = body;

因为您正在设置消息正文。如果不指定正文,将添加签名

使用mailto url无法完成您需要的操作。您将需要使用Outlook对象模型


创建(
new ActiveXObject()
)Outlook.Application对象的实例,使用
Application.CreateItem(0)
要创建新邮件,请将Subject/to/CC/BCC属性设置为,调用
MailItem.Display()
。此时Outlook将添加签名。现在阅读
HTMLBody
属性,将其与您自己的文本合并,然后将HTMLBody属性设置回原位。您可以使用
Body
属性(很容易将签名与您自己的数据合并),但这样会丢失格式

谢谢你的回答,你能给我举个例子吗?我可以给你举个例子,但在JS中,只有当你在IE中运行并且你的站点是可信的(否则你将无法创建COM对象)时,你才能使用OOM。是的,仅适用于IE并且站点是可信的。(这是一个供公司内部使用的网站),请举个例子。正如我前面提到的,在调用Display后,读取HTMLBody属性(此时它将包含签名),将其与数据合并,然后将HTMLBody属性设置为更新值。我不确定“读取HTMLBody属性”是什么意思,你能解释一下吗?