我是JavaScript / jQuery的新手,希望有人可以帮我解决以下问题:
我在Excel文件中使用以下VBA代码,以便在Outlook中准备格式化的电子邮件。 代码简短,易于调整,工作完美,包括准备电子邮件收件人,主题和HTML正文。
由于这在VBA中没有问题,我希望在JavaScript / jQuery中也有一种方法可以实现相同的功能。我试过mailto。这适用于收件人和主题,但不适用于以纯文本显示的HTML正文。
我的VBA代码(正常工作):
Sub Test()
Dim olApp As Object
Dim olOldBody As String
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .HTMLBody
.Importance = 2
.To = "email@company.com"
.Cc = ""
.Bcc = ""
.Subject = "My subject text"
.HTMLBody = "<span style='font-family: Arial, Helvetica, sans-serif; font-size:11pt; color: #00457C;'>" & _
"<strong>Title1:</strong>Line1<br />" & _
"<strong>Title2:</strong>Line2<br />" & _
"<strong>Title3:</strong>Line3<br /></span>" & olOldBody
.Display
End With
End Sub
感谢您对此提供任何帮助,Tim
答案 0 :(得分:1)
Outlook对象模型基于COM,这意味着它只能在IE中使用。
即使这样,您的脚本也必须来自受信任的站点才能使用new ActiveXObject()
创建本地COM对象。
更新:尝试以下JS代码(我不是Java程序员)。 请注意,通常您不能连接两个HTML字符串并生成有效的HTML字符串。您需要将两者合并(查找“”的位置,在该位置插入新的HTML)。
var olApp = new ActiveAxObject("Outlook.Application");
var olItem = olApp.CreateItem(0);
var olOldBody = olItem.HTMLBody;
olOldBody.Importance = 2;
olItem.To = "email@company.com";
olItem.Cc = "";
olItem.Bcc = "";
olItem.Subject = "My subject text";
olItem.HTMLBody = "<span style='font-family: Arial, Helvetica, sans-serif; font-size:11pt; color: #00457C;'>" +
"<strong>Title1:</strong>Line1<br />" +
"<strong>Title2:</strong>Line2<br />" +
"<strong>Title3:</strong>Line3<br /></span>" + olOldBody;
olItem.Display();