巧用EXCEL群发邮件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前一段时间由于需要给几百个用户发送初始化用户名和密码的邮件,每人的用户名和密码都不相同,不能通过群发邮件的方式。对于研发人员来说,写一个邮件发送工具并不是很困难,但是也需要一定的时间。
下面是我参照网上经验实际试过,效果不错,利用VBA简单编程,excel 配合outlook批量发送邮件,比较灵活,大家可以看看。
第一步:邮箱设置
配置好Microsoft outlook邮件客户端,确保能正常收发邮件,具体的本文不再详述;
第二步:建立Excel文档
1、为保证后面的“邮件群发”宏代码正确运行,需要执行“工具→宏→Visual Basic 编辑器”,将“工具→引用→Micr oseft Outlook*.0 Object Library(其中*为Microseft Outlook的版本号)选上”。
2、建立含不同邮件地址、主题、内容及附件的Excel文档,其中附件用插入超链接的方法完成。
第三步:编辑“邮件群发”宏
执行“工具→宏→Visual Basic编辑器”,单击“插入→模块”插入一个模块,在“工程”窗口中双击插入的模块,打开它的代码窗口,并在输入以下代码后关闭代码窗口。
代码示例
Sub sendmail()
'要能正确发送并需要对Microseft Outlook进行有效配置
On Error Resume Next
Dim rowCount, endRowNo
Dim objOutlook As New Outlook.Application
Dim objMail As MailItem
'取得当前工作表与Cells(1,1)相连的数据区行数
endRowNo = Cells(1, 1).CurrentRegion.Rows.Count
'创建 objOutlook为Outlook应用程序对象
Set objOutlook = New Outlook.Application
'开始循环发送电子邮件,比如从第二行开始,第一行是标题
For rowCount = 2 To endRowNo
'创建objMail为一个邮件对象
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
'设置收件人地址(比如从 Excel 表的第一列“E-mail地址”字段中获得) .To = Cells(rowCount, 1).Value '"fantasia@"
'设置邮件主题(比如从Excel 表的第二列“邮件主题”字段中获得)
.Subject = Cells(rowCount, 2).Value '"邮件主题"
'设置邮件内容(比如从Excel 表的第三列“邮件内容”字段中获得)
.Body = Cells(rowCount, 5).Value '"邮件内容"
'设置附件(比如从Excel 表的第四列“附件”字段中获得)
.Attachments.Add Cells(rowCount, 4).Value '"c:\\users.ctl"
.Send
End With
'销毁objMail对象
Set objMail = Nothing
Next
'销毁objOutlook对象
Set objOutlook = Nothing
End Sub
注意:Outlook的信任中心设置中编程访问安全设置项要选中“从不向我发出可疑活动警告”,否则每发送一封邮件,OUTLOOK都会提示并要求确认。