我制作了以下程序,该程序从 MS Access 的表格中获取电子邮件地址列表,并向每个人发送一封测试电子邮件。这是代码:
'Get data back from field birth date
Set fld = rcdSet.Fields("Email Address")
'Subject
olMailItem.Subject = "Mailing List Test"
'Loop through the records
For i = 0 To intNumRecords
'Recipient/s
olMailItem.To = fld.Value
'Body of email
olMailItem.Body = strBodyText
'Automatically send the email
olMailItem.Send
'Reset email item otherwise it won't work
Set olMailItem = olFolder.Items.Add("IPM.Note")
'Move to the next record
rcdSet.MoveNext
Next
是的,我打开了一个记录集,但没有包含上面的代码。所以这是我的问题:
我上面的方法正确吗?我必须在循环中重置,
olMailItem
否则它会返回一个Type Error
. 有没有更好的方法来发送多封电子邮件?我输入了一封无效的电子邮件,看看会发生什么——它会导致另一个
Type Error
. 有没有办法检测到退回(Outlook 发送给您的电子邮件,通知您这是一个错误的地址)电子邮件并向Immediate Window
(此时出于开发目的)发送消息
谢谢
注 - 增加了邮件申报
'Create Outlook object
Dim olApp As Outlook.Application
'Namespace
Dim olNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
'Create a reference to the email item you will use to send the email
Dim olMailItem As Outlook.MailItem
Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.GetDefaultFolder(olFolderInbox)
Set olMailItem = olFolder.Items.Add("IPM.Note")
如果我没有在 for 循环中重新设置 olMailItem,.To
则程序的一部分会发生错误 - 上述Type Error