这段代码有点粗糙,但它只是一个模拟。它的基本工作是:
当电子邮件从我的电子邮件中收到时,主题行以“批处理”开头:
现在是做我想做的一切,除了删除最后的电子邮件。在我回复邮件后,似乎无法找到原始的电子邮件对象来删除它。我知道事情会很简单,但我看不见.
Sub Check_For_Ticket(MyMail As MailItem)
Dim mysubject As String
Dim strEmail As String
'On Error GoTo Ticketerror
myemail = "pb***********@hotmail.com"
mysubject = "Batch*"
strEmail = MyMail.SenderEmailAddress
strSubject = MyMail.Subject
If strEmail = myemail And strSubject Like mysubject Then
MsgBox "yes" & strSubject
Call pbMoveMessageToTestFolder(MyMail)
Call AutoReply(MyMail)
Else
MsgBox "no" & strSubject
End If
MsgBox "this email is: " & strSubject
'Ticketerror:
' MsgBox "There is an error "
' MsgBox Err.Number & " : " & Err.Description
End Sub
Sub pbMoveMessageToTestFolder(MyMail As MailItem)
' Works on one selected item
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItem As Object
Dim objcopy As Object
MsgBox "into 2nd sub"
Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
' Add As many .Folders("SubfolderName") as needed
Set myDestFolder = myInbox.Folders("To_Process")
Set myItem = MyMail
'Application.ActiveExplorer.Selection.Item (1)
Dim copy As Object
Set copy = myItem.copy
'move copy to folder
copy.Move myDestFolder
MsgBox "should of copied"
Set myNameSpace = Nothing
Set myInbox = Nothing
Set myDestFolder = Nothing
Set myItem = Nothing
End Sub
Sub AutoReply(olItem As Outlook.MailItem)
'declaring variables
Dim olOutMail As Outlook.MailItem
Dim olOutMail2 As Outlook.MailItem
Dim strpbsubject As String
Dim strSubject As String
Dim Str As String
Str = olItem.Subject
MsgBox "3rd sub - subject: " & Str
strpbsubject = "This is an auto-reply from ***, confirming that " & strMid & " has been successfully received at " & Format(DateTime.Now, "dd-MM-yyyy hh:mm:ss")
'Creating the reply email
With olItem
Set olOutMail2 = olItem.Reply
With olOutMail2
.Body = strpbsubject 'Placing the body of the email in place
.Subject = "Delivered: " & Str 'appending "Delivered" to the subject line
.Send ' This is a changeable variable to display the reply change to .Display
' to deliver the response change to .Send
.UnRead = True 'makes the email unread after the auto response is sent
End With
Set olOutMail2 = Nothing
End With
End Sub发布于 2016-06-19 05:32:04
尝试在MyMail.Delete之后添加Call AutoReply(MyMail)
If strEmail = myEmail And mysubject Like mysubject Then
MsgBox "yes" & mysubject
Call pbMoveMessageToTestFolder(MyMail)
Call AutoReply(MyMail)
MyMail.Delete
Elsehttps://stackoverflow.com/questions/37897551
复制相似问题