我对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 ="" & _
"Title1:Line1
" & _
"Title2:Line2
" & _
"Title3:Line3
" & olOldBody
.Display
End With
End Sub
蒂姆,谢谢你的帮助
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 ="" +
"Title1:Line1
" +
"Title2:Line2
" +
"Title3:Line3
" + olOldBody;
olItem.Display();
谢谢,德米特里。 仅与IE一起使用,并且只能从受信任的站点使用。 那我该如何实现呢?
您只需要用JS重写VB代码即可。 参见上面更新的答案
谢谢德米特里。 我试过了,但是什么也没做。 另外,我在这里没有收到错误。
更新:实际上,这很完美-您在第一行中只是遇到类型错误:它应该是ActiveXObject而不是ActiveAxObject。
测试完成-效果很好。 非常感谢您的帮助!