使用Javax.mail 发送邮件

tech2026-03-26  1

使用Javax.mail 发送邮件

详细说明都在代码中:

引入依赖

<!--sun定义的一套接收、发送电子邮件的API--> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>

编写代码

package com.joyful.demo.service; import org.springframework.stereotype.Service; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Date; import java.util.Properties; @Service public class MailServiceImpl implements MailService { /** * * @param mailTo:发送给谁 * @param activeCode:发送的激活码 * @throws Exception * * javax.mail API使用步骤 * 1、使用Properties封装连接信息 * 2、传入Session对象 * 3、创建邮件实体对象Message * 4、使用Transport对象发送邮件 */ public void sendEmail(String mailTo, String activeCode) throws Exception { //收件人地址 String recipientAddress = mailTo; //发件人账户名 String senderAccount = "blackjoyful@163.com"; //发件人账户密码 String senderPassword = "***************"; //1、连接邮件服务器的参数配置 Properties props = new Properties(); //设置用户的认证方式 props.setProperty("mail.smtp.auth", "true"); //设置传输协议 props.setProperty("mail.transport.protocol", "smtp"); //设置发件人的SMTP服务器地址 props.setProperty("mail.smtp.host", "smtp.163.com"); //2、创建定义整个应用程序所需的环境信息的 Session 对象 Session session = Session.getInstance(props); //设置调试信息在控制台打印出来 session.setDebug(true); //3、创建邮件的实例对象 Message msg = createMimeMessage(session,recipientAddress,activeCode); //4、根据session对象获取邮件传输对象Transport Transport transport = session.getTransport(); //设置发件人的账户名和密码 transport.connect(senderAccount, senderPassword); //如果只想发送给指定的人,可以如下写法 transport.sendMessage(msg, new Address[]{new InternetAddress(recipientAddress)}); //5、关闭邮件连接 transport.close(); } /** * 邮件格式 * @param session * @param recipientAddress * @return * @throws Exception */ public static MimeMessage createMimeMessage(Session session, String recipientAddress, String md5) throws Exception{ //1.创建一封邮件 MimeMessage message=new MimeMessage(session); //发件人地址 String senderAddress = "blackjoyful@163.com"; message.setFrom(new InternetAddress(senderAddress)); //4.Subject 邮件主题 message.setSubject("用户激活","UTF-8"); //5.邮件正文 message.setContent("账号 :"+recipientAddress+", 激活码是 :"+md5,"text/html;charset=UTF-8"); //6..设置发件时间 message.setSentDate(new Date()); //7.保存设置 message.saveChanges(); return message; } }
最新回复(0)