VBscript用于使用SMTP发送邮件.mht文件附件

时间:2015-03-18 09:25:40

标签: vbscript smtp

我正在使用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"

中提到的完全相同

感谢。

1 个答案:

答案 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