我正在使用Gmail SMTP服务器发送.mht文件。一旦发出,我得到了很多attachemnts和.mht文件加载在电子邮件正文(从雅虎邮件)。相反,在outlook中,我将其作为邮件附件。 用于此的VB脚本:
Set objMessage = CreateObject("CDO.Message")
objMessage.HTMLBody = "<h1>Matrikon AM</h1>"
objMessage.Subject = "Test 1 -Blank"
objMessage.From = "xxxxx@gmail.com"
objMessage.To = "xxxxx@yahoo.com"
objMessage.TextBody = "From b.vbs"
objMessage.AddAttachment "c:\xxxxxxx\A1.mht"
objMessage.Send
我在网上有一些快速搜索&#34; ContentMediaType&#34;因为文件扩展名是.mht,所以必须在某处定义。 需要帮助,因为我找不到定义内容类型的方法。 我的问题与"https://stackoverflow.com/questions/15976836/modifying-the-content-type-of-an-attachment-in-a-cdo-message-object"
中提到的完全相同感谢。
答案 0 :(得分:0)
这是来自帮助。
urn:schemas:mailheader:Namespace
urn:schemas:mailheader:namespace定义包含Internet标准邮件头值的字段。每个字段值(除少数例外)都存储为US-ASCII字符,并且与消息流中的ASCII字符串相同。非US-ASCII字符根据RFC 1522规范进行编码。设置或更新属性值时不执行转换。设置原始邮件头属性的应用程序必须RFC 1522编码非US-ASCII字符或标头值将被损坏。
字符串常量在C ++头文件cdosysstr.h和类型库(cdoMailHeader模块)中为每个字段名提供。在引用字段时可以使用这些常量来避免拼写错误和额外输入。
实施例 以下示例演示了如何使用urn中的字段:schemas:mailheader:namespace。首先,为消息添加RFC 822标头。接下来,添加正文部分并手动设置MIME标头。
此代码仅供参考。
复制代码
Dim iMsg as New CDO.Message
Dim Flds as ADODB.Fields
With iMsg
.To = """Someone"" <example@example.com>"
.From = """Me"" <example@example.com>"
.Subject = "Here is a sample message"
' Now set some custom mail headers using the raw fields collection
Set Flds = .Fields
With Flds
.Item("urn:schemas:mailheader:X-Mailer") = "Microsoft CDO for Windows 2000"
' I add a custom header here
.Item("urn:schemas:mailheader:Myheader")= "some value"
.Update
.Resync
End With ' Flds
End With ' iMsg
' Create a multipart/alternative (HTML) message below
Dim iBp as CDO.IBodyPart
Dim iBp2 as CDO.IBodyPart
Set iBp = iMsg ' get IBodyPart on Message object
Set Flds = iBp.Fields
Flds("urn:schemas:mailheader:content-type") = "multipart/alternative"
Flds.Update
Set iBp2 = iBp.AddBodyPart
Set Flds = iBp2.Fields
Flds("urn:schemas:mailheader:content-type") = "text/plain"
Flds("urn:schemas:mailheader:content-transfer-encoding") = "quoted-printable"
Flds.Update
Dim Stm as ADODB.Stream
Set Stm = iBp2.GetDecodedContentStream
Stm.WriteText "This is a test", stWriteLine
Stm.Flush
Set iBp2 = iBp.AddBodyPart
Set Flds = iBp2.Fields
Flds("urn:schemas:mailheader:content-type") = "text/html"
Flds("urn:schemas:mailheader:content-transfer-encoding") = "quoted-printable"
Flds.Update
Set Stm = iBp2.GetDecodedContentStream
Stm.WriteText "This is a <i>test</i>", stWriteLine
Stm.Flush
iMsg.Send