[英]Working with Outlook using MS Access 2003 - VBA
我制作了以下程序,该程序从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")
如果我不重新设置olMailItem在for循环上出现错误.To
计划的一部分-上述Type Error
我不知道您声明了IPM类型的对象,请注意并尝试发送它,而是声明一个mailitem。
这应该工作
'Loop through the records
For i = 0 To intNumRecords
Set olMailItem = olFolder.Items.Add
'Subject
olMailItem.Subject = "Mailing List Test"
'Recipient/s
olMailItem.To = fld.Value
'Body of email
olMailItem.Body = strBodyText
'Automatically send the email
olMailItem.Send
'Release new mailitem
Set olMailItem = Nothing
'Move to the next record
rcdSet.MoveNext
Next
检出http://msdn.microsoft.com/zh-cn/library/office/bb220348(v=office.12).aspx ,以获取有关add方法的更多信息。
编辑:看到完整循环
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.