带有签名Javascript的电子邮件
为什么下面的代码会删除默认的Outlook签名带有签名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
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属性”是什么意思,你能解释一下吗?