要给不同的收件人发送不同的邮件,并且添加不同的附件,不用下载配置Outlook客户端,在Excel中利用VBA,配合QQ邮箱或者163邮箱就能做到。附件字段填写附件在电脑上的路径。163邮箱的原理相同,在表格中填入163邮箱的账户名称和smtp服务授权码,就能使用163邮箱,批量发送邮件。也可以根据自己的特定需求,对代码稍作修改后使用。

要给不同的收件人发送不同的邮件,并且添加不同的附件,不用下载配置Outlook客户端,在Excel中利用VBA,配合QQ邮箱或者163邮箱就能做到。
1.准备数据源按照上图中的格式,准备好每封邮件的主题,正文,收件人邮箱,附件。附件字段填写附件在电脑上的路径。
2.开启QQ邮箱smtp服务登录QQ邮箱,依次点击【设置】-【账户】,滚动到到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,点击【开启】,然后按照提示操作,获得一串授权码
3.发送邮件将QQ号和授权码粘贴到Excel表格上的对应单元格中,点击【开始批量发送邮件】按钮,就能自动批量发送邮件了。
163邮箱的原理相同,在表格中填入163邮箱的账户名称和smtp服务授权码,就能使用163邮箱,批量发送邮件。
4.VBA代码有需要的朋友,将下面的代码插入到ExcelVBA标准模块中,并将工作表上的按钮指定到sendmail过程,点击按钮就能发送了。也可以根据自己的特定需求,对代码稍作修改后使用。示例文件从如下位置获取:链接: https:///s/1YGFEOc-DbOHkQ73bdu4inQ 提取码: zx42
欢迎关注评论转发,如果希望了解办公场景中一些特定问题的解决方案分享,可以在评论区留言哦。
Sub sendMail()Dim Mailmessage As Object, serverURL As StringDim adata, Account As String, PassWord As StringDim col As StringAccount = Cells(4, 6)PassWord = Cells(5, 6)adata = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 4).Value'以下部分设置邮件服务器Set Mailmessage = CreateObject("CDO.Message")serverURL = "http://schemas.microsoft.com/cdo/configuration/"With Mailmessage.Configuration.Fields.Item(serverURL & "smtpserver") = "smtp.qq.com"'服务器配置根据具体使用的邮箱设置.Item(serverURL & "smtpserverport") = 25.Item(serverURL & "sendusing") = 2.Item(serverURL & "smtpauthenticate") = 1.Item(serverURL & "sendusername") = Account.Item(serverURL & "sendpassword") = PassWord.Item(serverURL & "smtpconnectiontimeout") = 60.UpdateEnd WithOn Error GoTo errhandle'以下部分编辑邮件内容并发送For i = 1 To UBound(adata)With Mailmessage.BodyPart.Charset = "utf-8"'如果有中文内容,需指定编码为utf-8.Attachments.DeleteAll.From = Account & "@qq.com"'163邮箱改为@163.com.Subject = adata(i, 1).TextBody = adata(i, 2).To = adata(i, 3).AddAttachment adata(i, 4).SendEnd Withnextmail:NextOn Error GoTo 0Set Mailmessage = NothingIf col = "" ThenMsgBox "批量发送完成"ElseMsgBox "批量发送完成,以下邮件发送失败:" & vbNewLine & colEnd IfExit Suberrhandle:col = col & vbNewLine & "TO:" & adata(i, 3)GoTo nextmailEnd Sub
