在 vbscript 中发送多部分电子邮件

Posted

技术标签:

【中文标题】在 vbscript 中发送多部分电子邮件【英文标题】:Sending Multipart Email in vbscript 【发布时间】:2013-08-01 01:26:39 【问题描述】:

我编写了一个发送 html 电子邮件的脚本。在Gmail里很好用,但是我在Outlook里打开,全是中文的。

我了解了 MIME 电子邮件 - 发送 2 个版本的电子邮件,一个带有 HTML 和一个纯文本,但不知道如何创建一个。我在某处看到您需要带有私钥的证书。

有人能解释一下如何让它工作吗?

这是我的电子邮件发送代码:

'Send an email
strSMTPFrom = "Test@hp.com"
strSMTPTo = email             'Email taken from array
strSMTPRelay = "smtp1.hp.com"       
strTextBody = strContent      'Content taken from the template

Set oMessage = CreateObject("CDO.Message")
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTPRelay
oMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
oMessage.Configuration.Fields.Update

oMessage.Subject = strSubject
oMessage.From = strSMTPFrom
oMessage.To = strSMTPTo
oMessage.HTMLBody = strTextBody
oMessage.Send

【问题讨论】:

您的代码有效。多部分 foobar 是通过将内容分配给 HTMLBody 属性自动生成的。如果结果不符合您的预期,则问题出在您尝试提供的内容上。 strTextBody 的值是多少?结果在 Outlook 中看起来如何?您希望它看起来如何? 哦,好吧...我正在尝试发送 HTML 格式的传单。我知道 Outlook 的问题出在代码中,但我想如果我发送多部分消息,Outlook 可以识别它遇到的问题并选择纯文本版本。 Outlook(或者更确切地说是它使用的 Internet Explorer 组件)只是呈现邮件的 HTML 部分中的内容。如果结果不正确,则需要修复内容。这可能包括迎合 IE 怪癖。如果您需要这方面的帮助,请回答我提出的问题。 【参考方案1】:

找到答案。这是字符集。 HTML 在其中一个标签中有这个。 字符集设置为Unicode。当涉及到电子邮件客户端时,它已更改为UTF-8。 Gmail 能够使其正常工作,但 Outlook 不能。

我们发送了一个在网上找到的 HTML 电子邮件示例,当我们看到它有效时,我们检查了它的字符集,它是 windows-1255

我们更改了代码中的标签,它起作用了!

再次感谢您的快速回复

【讨论】:

以上是关于在 vbscript 中发送多部分电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

vbscript 从表格发送电子邮件

在 Python3 中使用 smtplib 发送多部分电子邮件,但未显示第二部分

vbscript 从Excel发送电子邮件 - VBA

vbscript 用于使用Remedy内容发送电子邮件

发送包含嵌入图像的多部分 html 电子邮件

vbscript [.net] [vb]从内存流发送包含附件的电子邮件