java邮件发送附件_批量给指定收件人发送邮件和指定附件
之前有给大家分享过一篇关于批量将word转成pdf的文件,然后将pdf文件批量按照指定收件人进行邮件发送的文章。文章可以参照:
不同附件的邮件批量发给不同的指定人
批量发送带PDF附件的邮件
昨天一台湾的网友咨询了这个问题,同时他也给我分享了他在网上下载的另外一个版本,个人觉得很非常实用,这里给大家分享一下。文末会分享链接,大家可以下载保存,万一以后用得上呢。先来看看怎么用吧,因为中间确实有个设置需要说一下,不然只是拷贝代码的话,还是会出错。
首先打开Excel文件,其中有两个工作表,第一个是发送的清单,里面的内容很简单,如下:

工作表 - 发送清单
另外一个工作表就是邮件的标题和正文:

工作表 - 正文
写好相应的文本后,点击发送邮件按钮后,自动弹出邮箱客户端Outlook,界面是这个样子的:

Outlook发送邮件预览界面
回到Excel中,会返回一个对话框显示有多少封邮件要发送。(我这里只写了一个收件人,所以只显示了一封邮件)

Excel中弹出对话框
来看看Excel中的代码吧。(不懂没关系,主要明白你拿去之后需要改哪些地方就可以了,非常容易。)

Excel中的代码
代码很人性化,基本每一行都有注释。看看哪些地方值得关注以及后期如果拷贝代码后需要修改的。
代码中提到了这句:

代码中的设置
它这个其实是已经设置好了,如果你要拷贝代码进行使用的话,完成复制粘贴之后,运行之前需要进行一个设置,否则代码无法运行,会报错。设置如图所示:
点击工具下的引用:

工具 - 引用
调出引用-VBAProject对话框,如下:

引用对话框中的选项
一定要勾选这个:Microsoft Outlook 16.0 Object Library
这个根据你的outlook的版本来,之前那个朋友拷贝后无法运行,就是因为没有勾选此选项导致的。一定要看清楚,不要跟上面那个Microsoft Office 16.0 Object Library弄混了,各是各的。
接下来代码中:

代码中文字部分
这个发送清单,其实就是工作表的名称,对应就是Excel中的工作表这个:

对应工作表
再来就是这个“正文”:

代码中文字部分
对应的是Excel工作表中的这个:

对应工作表
如果你的工作表名称与代码中的不一致,需要进行更改。
其他的类似于Cells(1,2),意思就是单元格第1行第2列。
我将后面的代码中进行了一下修改,因为如果不修改的话,邮件会直接发出去,而不是先预览一下。如果你的邮件相当多,最好先预览测试一下。没问题的话,再改回去就可以了。这个地方:

代码预览邮件
display就是预览的意思,如果你无需预览直接发送,改成下面这样就可以了:

代码 - 发送邮件
希望这个工具对大家有用,再次感谢来自宝岛台湾网友Kve的分享。
文中提到的链接如下:
链接:https://pan.baidu.com/s/173i3jpJGPy-rvqg3RydM4g
提取码:wasg
如果本文对你有帮助,请分享给有需要的朋友或你的朋友圈,让大家一起高效工作。