使用此名称发送你的邮件是什么意思_使用Excel自动批量发送邮件

870e14ae3e28773992aaadded199256e.png

很多时候,我们会遇到这种需要针对不同主体发送不同内容的场景。一般情况下,我们会一个个的逐一去发,但是,如果你需要发送的内容以及附件达到上百个或者更多的时候,再这样手工去发送就太困难了。

实际上,有更好的办法,那就是使用程序自动批量发送。理论上,任何程序语言都可以做到,在此,先不考虑其它高级语言的实现办法,我还是使用最简单的VBA来做。

1、制作邮件内容列表

在此,需要把邮件里面的主要内容,收件人名称、收件人邮箱、邮件主题、邮件正文、邮件附件路径全部放到列表里面,具体如下图:

6a7b791f678b893aaa0e13bfb1cb9717.png

2、编写执行发送邮件的VBA代码

以下是执行发送邮件的核心代码部分。在此,使用到了微软CDO对象。此部分代码可以适用大部分的邮箱发送,只要修改使用邮箱的相关配置参数即可。在此,我使用的是126的邮箱发送,相关配置参数也是126的。以下代码中已做了详细的注释。

8c984fc141fb4c2cc613d8eda27089fb.png

3、发送效果

以下是执行后的具体效果。

b230139191bdb5cdd0a605e1f0919003.png

4、总结

以上,仅仅做了单次发送的一个案例。如果需要针对大批量的发送,那么只要循环数据列表即可,也就是把发送邮件的主代码写入数据列表循环体内即可。这部分就由诸位自行研究修改,出于对各位的负责,还是不打算全部一次性写完,得给各位朋友留出自行学习的空间。

二次更新:

应很多网友的要求,照着图片输入代码太麻烦,需要源码。在此就将文中使用到的代码发出来,但邮箱设置部分需要改成自己的。

Sub SendEmail()
    Dim CDO As Object
    Dim CDO_toname, CDO_to, CDO_subject, CDO_textbody, CDO_htmlbody, CDO_attachment As String
    Const Email_From = "XXXXXX"  '发件人邮箱
    Const Password = "XXXXXXX"    '发件人邮箱密码
    Const schema = "http://schemas.microsoft.com/cdo/configuration/"   '微软CDO服务器网址

    CDO_toname = Sheet1.Range("B2")
    CDO_to = Sheet1.Range("C2")
    CDO_subject = Sheet1.Range("D2")
    CDO_textbody = Sheet1.Range("E2")
    CDO_attachment = Sheet1.Range("F2")
    
    CDO_htmlbody = "<html><body><B>尊敬的" & CDO_toname & ":</B>" & _
               "<br>&emsp;&emsp;" & CDO_textbody & "</body></html>"      '设置邮件正文的HTML格式

    Set CDO = CreateObject("CDO.Message")  '创建CDO.Message对象
    
    CDO.From = Email_From      '发件人地址
    CDO.To = CDO_to         '收件人地址
    CDO.SubJect = CDO_subject  '邮件主题
    CDO.htmlBody = CDO_htmlbody   'HTML格式的邮件正文,如果纯文本无格式的,则使用CDO.textbody属性
    CDO.AddAttachment Trim(CDO_attachment) '邮件附件文件路径
      
    With CDO.Configuration.Fields    '批量设置CDO对象属性
        .Item(schema & "sendusing") = 2     '使用网络上的SMTP服务器而不是本地的SMTP服务器
        .Item(schema & "smtpserver") = "smtp.126.com"    'SMTP服务器地址,在此以126为例
        .Item(schema & "smtpauthenticate") = 1    '服务器认证方式
        .Item(schema & "sendusername") = Email_From    '发件人邮箱
        .Item(schema & "sendpassword") = Password     '发件人邮箱密码
        .Item(schema & "smtpserverport") = 465     'SMTP服务器端口
        .Item(schema & "smtpusessl") = True     '是否使用SSL
        .Item(schema & "smtpconnectiontimeout") = 60    '连接服务器的超时时间
        .Update     '更新设置
    End With
    
    CDO.Send    '发送邮件
    MsgBox ("发送成功!")
    Set CDO = Nothing  '发送成功后即时释放对象
End Sub

——————————————————————

创作不易,转载请注明来源!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值