我有一些VBA在收到每个邮件的主题后立即检查邮件的主题,并通过http将某些电子邮件的内容提交给服务器进行处理。
这适用于没有附件的邮件,但如果邮件中有附件则会失败。我正在使用http GET提交文本。
附件的存在对邮件正文属性的影响是什么,如何忽略附件并仅提交电子邮件正文?
VBA(为了清晰而修剪但完整且功能齐全):
声明:
Option Explicit
Private WithEvents olInboxItems As Items
启动时:
Private Sub Application_Startup()
Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub
关于添加到收件箱的项目:
Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
On Error Resume Next
Dim olMailItem As MailItem
Dim strAttachmentName As String
Dim submitResult As String
If TypeOf Item Is MailItem Then
Set olMailItem = Item
If ((InStr(olMailItem.subject, "test subject") > 0)
Dim subject As String
subject = olMailItem.subject
Dim contents As Variant
contents = olMailItem.body
Dim submitURL As String
submitURL = "http:// ... " & subject & "..." & contents & "..."
XMLHttpSynchronous submitURL
End If
End If
Set Item = Nothing
Set olMailItem = Nothing
End Sub
Http提交:
Sub XMLHttpSynchronous(ByVal URL As String)
Dim XMLHttpRequest As XMLHTTP
Set XMLHttpRequest = New MSXML2.XMLHTTP
XMLHttpRequest.Open "GET", URL, False
XMLHttpRequest.Send
End Sub
编辑:我现在使用以下代码剥离附件(已测试并正常工作),但网址仍未正确提交。
Set myattachments = olMailItem.Attachments
While myattachments.Count > 0
myattachments.Remove 1
Wend
编辑2:我设置了contents = subject并正确提交了网址,即使邮件被删除附件后,仍然没有运气电子邮件的正文
答案 0 :(得分:0)
为了实现这一点,我在第一次编辑中使用代码剥离了附件,而不是将主体文本的字符串分开到第一个和最后一个字符。我不确定为什么会这样做