JavaMail邮件发送机制详解
JavaMail是一种提供给开发者处理电子邮件相关的编程接口,主要用于执行一些常用的邮件传输。它可以方便地开发出类似于Microsoft Outlook的应用程序。JavaMail的应用场景非常广泛,例如在系统的注册模块,当用户填入注册信息的邮箱时,点击保存,系统根据用户的信息会自动给用户发送一封邮件,上面有用户的基本信息和注意事项,也可以用此方法实现用户的激活。
JavaMail的代码实现可以分为两种方式,一种是普通方式,一种是带附件和图片的方式。
普通方式一主要包括以下步骤:
1. 首先引入javaMail的mail坐标,即jar包:mail:1.4.1 坐标:
javax.mailmail1.4.4
2. 设置邮件的一些信息:Properties props = new Properties();
3. 创建Session对象:Session session = Session.getInstance(props);
4. 创建出MimeMessage,邮件的消息对象:MimeMessage message = new MimeMessage(session);
5. 设置发件人:Address fromAddr = new InternetAddress("发件人邮箱"); message.setFrom(fromAddr);
6. 设置收件人:Address toAddr = new InternetAddress("收件人邮箱"); message.setRecipient(RecipientType.TO, toAddr);
7. 设置邮件的主题:message.setSubject("项目进展顺序");
8. 设置邮件的正文:message.setText("项目进展顺序,所有兄弟们都非常努力,老板今天可以请吃饭");
9. 保存更新:message.saveChanges();
10. 得到火箭:Transport transport = session.getTransport("smtp");
11. 设置火箭的发射地址:transport.connect("smtp.163.com", "发件人邮箱", "发件人密码");
12. 发送具体内容及接收人:transport.sendMessage(message, message.getAllRecipients());
13. 关闭火箭:transport.close();
普通方式二可以带附件和图片,以下是代码实现:
1. 测试代码:
package mail.test;
import java.io.File;
import javax.mail.internet.MimeMessage;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:META-INF/spring/applicationContext.xml"})
public class Mail02Test {
...
}
在上面的代码中,我们引入了javaMail的mail坐标,并设置了邮件的一些信息,创建了Session对象和MimeMessage对象,然后设置了发件人、收件人、邮件的主题和正文,最后发送邮件。
JavaMail的优点是可以方便地开发出类似于Microsoft Outlook的应用程序,并且可以实现用户的激活等功能。但是,JavaMail也存在一些缺点,例如安全性问题和邮件发送失败的问题,因此在使用JavaMail时需要注意这些问题。