在 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 中发送多部分电子邮件的主要内容,如果未能解决你的问题,请参考以下文章