[Utils]JavaMail制作与使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Utils]JavaMail制作与使用相关的知识,希望对你有一定的参考价值。

JavaMail应用场合主要是发送验证码或激活账号

首先:创建JavaMail工具类

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;

/**
 * 发送账号激活邮件
 * @author Zenz
 *
 */
public class MailUtils {
        
       /**
        *@param: usermail 邮件接收账号
        *@param: code 激活验证码
        **/
	public static void sendMail(String usermail, String code) throws Exception{
		
		//1.设置邮件参数
		Properties prop = new Properties();
		//1.1 指定协议
		prop.put("mail.transport.protocol", "smtp");	
		//1.2 主机 
		prop.put("mail.smtp.host", "服务器IP地址");
		//1.3 端口号
		prop.put("mail.smtp.port", 25);					
		//1.4 用户密码认证
		prop.put("mail.smtp.auth", "ture");				
		//1.5 调试模式
		prop.put("mail.debug", "ture");					
		
		// 2.创建一个邮件的会话
		Session session = Session.getDefaultInstance(prop);
		
		//3.创建邮件体对象
		MimeMessage message = new MimeMessage(session);
		
		//4.设置邮件体参数
		//4.1 邮件标题
		message.setSubject("XXX账号激活");
		//4.2 发送时间
		message.setSentDate(new Date());
		//4.3 发件人
		message.setSender(new InternetAddress("[email protected]"));
		//4.4 收件人
		message.setRecipient(MimeMessage.RecipientType.TO,
                              new InternetAddress(usermail));
		//4.5 邮件内容
		message.setContent("<h1>点击下面链接完成激活</h1>
                    <h3><a href=‘http://xx<!-- 激活账号的action方法-->xx.action?
                     code="+code+"‘>http://xx<!-- 激活账号的action方法-->xx.action?
                     code="+code+"</a></h3>", "text/html;charset=UTF-8");
		
                //保存邮件(可选)
		message.saveChanges();
		
		//5.发送
		Transport trans = session.getTransport();
		trans.connect("service","root");
		trans.sendMessage(message, message.getAllRecipients());
		trans.close();
		
	}
}

  使用:在保持账号信息到数据库的同时,调用javamail发送邮件

import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;

/**
 * Created by Zenz.
 */
@Service("userService")
public class UserServiceImpl implements UserService {
    
    @Resource
    private UserDao userDao;

    @Override
    public void save(User user) throws Exception {
        user.setState(0);//0表示未激活
        String code = UUIDUtils.getUUID().replace("-","")+ UUIDUtils.getUUID().replace("-","");
        user.setCode(code);
        userDao.save(user);
        //发送激活码
        MailUtils.sendMail(user.getEmail(),code);
    }

}

  

以上是关于[Utils]JavaMail制作与使用的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaMail 中获取 html 电子邮件内容

将JavaMail与TLS结合使用

javaMail邮件接收解析内容及附件 及删除邮件

将 JavaMail 与 TLS 一起使用

为片段制作自定义列表视图?

代码片段