我想寫一個VBA腳本,當Outlook收到來自特定電子郵件地址的新電子郵件時,VBA腳本必須檢測並重新發送新收到的電子郵件地址簿中的所有聯繫人。收到新電子郵件時發送電子郵件給Outlook通訊簿中的所有聯繫人(VB)
現在我能夠發送電子郵件給所有聯繫人地址簿:
Sub SendEmails()
Dim ContactsFolder As Folder
Set ContactsFolder = Session.GetDefaultFolder(olFolderContacts)
Dim Contact As Object
Dim olApp As Outlook.Application
Dim objMail As Outlook.MailItem
Set olApp = Outlook.Application
For Each Contact In ContactsFolder.Items
Set objMail = olApp.CreateItem(olMailItem)
With objMail
.Subject = "Subject of the received email"
.Body = "Body of the received email"
.To = Contact.Email1Address
.Send
End With
Next
End Sub
,但如何使用這個腳本,所以當從一個特定的電子郵件地址收到新的電子郵件叫。
我試圖把這個ThisOulookSeassion檢查新郵件的事件,所以我可以在它叫我上面的代碼:
Private Sub Application_NewMail()
MsgBox "New mail"
End Sub
,但沒有奏效。
而且我想這(我把它放在ThisOulookSeassion太):
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
' default local Inbox
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)
On Error Goto ErrorHandler
Dim Msg As Outlook.MailItem
If TypeName(item) = "MailItem" Then
Set Msg = item
' ******************
' and placing my code here.
' ******************
End If
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
但是當我點擊運行它問我要創建新的宏,並且不運行代碼。
有什麼建議嗎?
*全部*聯繫人?你在製造病毒嗎? – 2015-02-24 14:25:25
@DmitryStreblechenko哈哈,不,我只是想把每日新聞發送給訂閱者。而已 :) 。 – Omar 2015-02-24 15:09:32