网上有很多教程写如何发送邮件,我也来梳理一下,看看能不能让自己更加清楚发邮件的流程
1.首先先说一封邮件的结构吧!
邮件由标题,正文,签名,附件,发件人,收件人等部分组成,其中,正文,签名附件是封装到Multipart这个容器里面,这个容器可以装很多很多BodyPart,而我们通常用的BodyPart实现类是MimeBodyPart,而系统又将Multipart这个容器装到MimeMessage这个里面,怎么装呢,用addBodyPart这个方法把他装进去,装了之后,Multipart,和标题,发件人,收件人就放到一起了,那么,标题和发件人,收件人又是通过什么样的方法和Multipart装一起呢?通过setSubject这个方法把标题装进去,通过setFrom把发件人装进去,通过addRecipient把收件人装进去,有人可能发现,为什么收件人的方法名不一样呢?原因很简单,一封邮件可以有很多很多个收件人,但却只能有一个标题和一个发件人,不然世界就乱套了.
//下面的话,会花点时间处理富文本邮件和多附件邮件,通过这个来更加透彻了解邮件这个古老的商业工具,
附录:
1.javax.mail.AuthenticationFailedException: 454 Authentication failed, please open smtp flag first!
邮箱没有开启smtp服务
2.250 Ok: queued as
QUIT
221 Bye
这表示邮件发送成功