1

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

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

4

1 回答 1

1

Outlook 对象模型是基于 COM 的,这意味着它只能在 IE 中使用。

即使这样,您的脚本也必须来自受信任的站点才能使用new ActiveXObject().

更新:尝试如下的 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();
于 2013-10-20T19:28:26.440 回答