【问题标题】:jQuery: create Outlook email objectjQuery:创建 Outlook 电子邮件对象
【发布时间】:2013-10-21 10:36:36
【问题描述】:

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

感谢您对此提供的任何帮助,蒂姆

【问题讨论】:

    标签: jquery html email outlook mailto


    【解决方案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();
    

    【讨论】:

    • 谢谢,德米特里。这只会与 IE 一起使用,并且只能来自受信任的站点。那我该如何实现呢?
    • 您只需要在 JS 中重写您的 VB 代码。请参阅上面的更新答案
    • 谢谢德米特里。我试过了,但这并没有做任何事情。另外,我这里没有错误。
    • 更新:实际上这很完美 - 你只是在第一行遇到了类型错误:它应该是 ActiveXObject 而不是 ActiveAxObject。
    • 测试完成 - 效果很好。非常感谢您的帮助!
    猜你喜欢
    • 2017-07-15
    • 2012-12-05
    • 1970-01-01
    • 2010-11-20
    • 2010-11-30
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多