最近项目中使用到发送邮件通知的功能,针对这个做了一下预研,使用的是apace的Commons-email。
发送带附件的邮件
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
/**
* Created by Think on 2018/3/22.
*/
public class EmailTest {
public static void main(String[] args) {
// Create the attachment
EmailAttachment attachment = new EmailAttachment();
//附件路径
attachment.setPath("F:/test/1.jpg");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("您的offer");
attachment.setName("offer");
// Create the email message
MultiPartEmail email = new MultiPartEmail();
//邮箱服务器,qq,163不一样,需根据发送邮箱进行设置
email.setHostName("smtp.exmail.qq.com");
//进行认证
email.setAuthentication("发送方@qq.com", "QFmwvWFxgVspxY2n");
email.setCharset("UTF-8");
email.setSSLOnConnect(true);
try {
//设置邮件信息
email.addTo("121313121@163.com", "John Doe");
email.setFrom("发送方@qq.com", "Me");
email.setSubject("The offer");
email.setMsg("Here is the offer you wanted");
// add the attachment
email.attach(attachment);
// send the email
email.send();
}catch (EmailException e) {
e.printStackTrace();
//后边的字符串为开启第三方发送权限后得到的,可在邮箱的设置中查找
email.setAuthentication("发送方@qq.com", "QFmwvWFxgVspxY2n");
email.setCharset("UTF-8");
email.setSSLOnConnect(true);
}
}
本来想自己封装一下,然后用着比较方便,然后网上随便看了一下,已经有大神封装好了,把链接放一下 https://www.cnblogs.com/haha12/p/4730274.html
关于收件人,抄送人,密送人
如果有人看了上面的链接内容,估计会对以上三种的区别有一丁点疑问,讲真,不做这个邮件发送功能我还不知道邮箱的收件人还有这么多的区别。。
关于这个,知乎里边有人说的很好,我也是直接拿过来了:https://www.zhihu.com/question/21704310
结尾:很久没有公开发表博客,一是好像没有学到什么新的,值得发送的东西;二是确实时间很紧,没有时间写东西;但是却越来越觉得写博客总结很重要,要不然,学过的东西就跟没有学过一样,不知道怎么,就消失不见了,要经常总结才行,不一定是为了给别人看,也是为了以自己的方式留给自己不争气的大脑,毕竟自己不是机器人,东西忘的又那么快。。感谢CSDN