Java 实现向邮箱发送邮件及点击邮件激活网页打不开等问题,常用作注册账号及激活账号(测试为qq邮箱)

service
public void register(User user) throws UserException{
try {
//往数据库添加用户
userDao.addUser(user);

		String link="http://127.0.0.1:8080/bookstore/active?activeCode="+user.getActiveCode();
		String html="<a href=\""+link+"\">欢迎你注册网上书城账号,请点击激活</a>";
		System.out.println(html);
		SendJMail.sendMail(user.getEmail(), html);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		throw new UserException("用户注册失败,用户名重复");
	}
	
}

utils
public class SendJMail {

	public static boolean sendMail(String email, String emailMsg) {
	
	String from = ""; 				// 邮件发送人的邮件地址
	String to = email; 										// 邮件接收人的邮件地址
	final String username = "";  	//发件人的邮件帐户
	final String password = "";   					//发件人的邮件密码


	//定义Properties对象,设置环境信息
	Properties props = System.getProperties();

	//设置邮件服务器的地址
	/*
	props.setProperty("mail.smtp.host", "smtp.qq.com"); // 指定的smtp服务器
	props.setProperty("mail.smtp.auth", "true");
	props.setProperty("mail.transport.protocol", "smtp");//设置发送邮件使用的协议
	*/
	props.setProperty("mail.transport.protocol", "smtp");
	props.setProperty("mail.smtp.auth", "true");
	//创建Session对象,session对象表示整个邮件的环境信息
	Session session = Session.getInstance(props);
	//设置输出调试信息
	session.setDebug(true);
	try {
		//Message的实例对象表示一封电子邮件
		MimeMessage message = new MimeMessage(session);
		//设置发件人的地址
		message.setFrom(new InternetAddress(from));
		//设置主题
		message.setSubject("用户激活");
		//设置邮件的文本内容
		//message.setText("Welcome to JavaMail World!");
		message.setContent((emailMsg),"text/html;charset=utf-8");
		
		//设置附件
		//message.setDataHandler(dh);
		
		//从session的环境中获取发送邮件的对象
		Transport transport=session.getTransport();
		//连接邮件服务器
		transport.connect("smtp.qq.com",25, username, password);
		//设置收件人地址,并发送消息
		transport.sendMessage(message,new Address[]{new InternetAddress(to)});
		transport.close();
		return true;
	} catch (MessagingException e) {
		e.printStackTrace();
		return false;
	}
}

}
SendJMail类中,有username 与password两个属性 ,请自行填写自己的公司邮件服务器账号及密码,若自行本地测试,我是使用的qq邮箱,要获取qq邮箱的授权码
如何获取qq邮箱授权码,如下图

如上图,点击左上角的设置
在这里插入图片描述
进入到上方界面, 点击账户下滑会看到如下图
在这里插入图片描述
这里开启pop3与smtp服务,即可获取授权码

本地测试中password需要填写授权码

倘若你的邮件发送成功了以后,点击邮件却无法打开网页出现下图这种情况
在这里插入图片描述
这里将邮件中的a标签中href的地址中的localhost 改为127.0.0.1即可在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页