将 .msg 附件的内容附加到邮件正文
我有一个脚本可以打开附件并将其附加到邮件正文中。我让它适用于文本文档,但我也需要它适用于 .msg 附件。
目前它只是不读取该对象。有人可以帮忙吗?
Sub RunAScriptRuleRoutine(MyMail As MailItem)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim olMailAT As Outlook.MailItem
strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = olNS.GetItemFromID(strID)
If olMail.Subject = "lala" Then
If olMail.Attachments.Count > 0 Then
Dim strLine As String
Dim mailLine As String
Dim strLines As String
For i = 1 To olMail.Attachments.Count
strFileName = "C:\emailTemp\" + olMail.Attachments.Item(i).FileName
If InStr(strFileName, "msg") Then
olMail.Attachments.Item(i).SaveAsFile strFileName
strLines = strLines + "//Start of " + strFileName + " //" + vbCrLf
Open strFileName For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
mailLine = mailLine + strLine
Loop
Close #1
olMailAT = mailLine
strLine = objMailAT.Body
strLines = strLines + "heres the .msg" + vbCrLf
strLines = strLines + "//End of " + strFileName + " //" + vbCrLf
Else
olMail.Attachments.Item(i).SaveAsFile strFileName
strLines = strLines + "//Start of " + strFileName + " //" + vbCrLf
Open strFileName For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
strLines = strLines + vbCrLf + strLine
Loop
Close #1
strLines = strLines + "//End of " + strFileName + " //" + vbCrLf
End If
Next
'save to email body and save email
olMail.Body = strLines
olMail.Save
End If
End If
Set olMail = Nothing
Set olNS = Nothing
End Sub
I have a script to open attachments and append them to the message body. I have it working for text documents but I need it working for .msg attachments too.
At the moment it just doesn't read the object. Can anyone help?
Sub RunAScriptRuleRoutine(MyMail As MailItem)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim olMailAT As Outlook.MailItem
strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = olNS.GetItemFromID(strID)
If olMail.Subject = "lala" Then
If olMail.Attachments.Count > 0 Then
Dim strLine As String
Dim mailLine As String
Dim strLines As String
For i = 1 To olMail.Attachments.Count
strFileName = "C:\emailTemp\" + olMail.Attachments.Item(i).FileName
If InStr(strFileName, "msg") Then
olMail.Attachments.Item(i).SaveAsFile strFileName
strLines = strLines + "//Start of " + strFileName + " //" + vbCrLf
Open strFileName For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
mailLine = mailLine + strLine
Loop
Close #1
olMailAT = mailLine
strLine = objMailAT.Body
strLines = strLines + "heres the .msg" + vbCrLf
strLines = strLines + "//End of " + strFileName + " //" + vbCrLf
Else
olMail.Attachments.Item(i).SaveAsFile strFileName
strLines = strLines + "//Start of " + strFileName + " //" + vbCrLf
Open strFileName For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
strLines = strLines + vbCrLf + strLine
Loop
Close #1
strLines = strLines + "//End of " + strFileName + " //" + vbCrLf
End If
Next
'save to email body and save email
olMail.Body = strLines
olMail.Save
End If
End If
Set olMail = Nothing
Set olNS = Nothing
End Sub
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您应该考虑使用 Outlook 兑换。
另外,您应该查看此文档以了解格式规范
http://msdn.microsoft.com/en-us/library/cc463912。 ASPX
You should look into using Outlook Redemption.
Also, you should look at this documentation for format specificaion
http://msdn.microsoft.com/en-us/library/cc463912.aspx
为了读取 .msg 文件的内容,我使用了以下方法。
使用 Outlook 对象为 msg 文件使用 CreateItemFromTemplate
使用此 Outlook 对象将数据保存到 .txt 文件中
创建.txt文件后,读取它并根据需要使用数据
一次创建 .txt 文件,并根据计算需要使用它。
To read the contents of a .msg file, I have used the following approach.
Use CreateItemFromTemplate for the msg file using the Outlook object
Use this Outlook object to save the data into a .txt file
Once the .txt file is created, read it and use the data as required
Once the .txt file is created use it as required for your computations.
顺便说一句...完整的解决方案请参见此处... http://www.geakeit.co.uk/2010/06/25/automating-电子邮件反馈循环fbl处理和获取aol%E2%80%99s-收件人电子邮件地址问题/
By the way...for a full solution see here... http://www.geakeit.co.uk/2010/06/25/automating-email-feedback-loop-fbl-processing-and-getting-around-aol%E2%80%99s-recipient-email-address-issue/