jQuery:创建Outlook电子邮件对象

时间:2013-10-20 18:24:09

标签: jquery html email outlook mailto

我是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

1 个答案:

答案 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();