SSH如何实现发送邮箱激活账号

平时会遇到最多的是注册的时候要求填写用户邮箱,然后发送激活邮件到用户的邮箱里面进行激活账号,也有很多的是通过邮件来通知用户,现在说一下在注册的时候怎么发送激活邮件到用户邮箱,并且怎么激活用户。
能实现发送邮箱的前提是导入jar包mail.jar,可以上百度搜索下载,把mail.jar放到WebRoot–>WEB-INF–>lib下。
邮件协议:smtp:发送邮件协议;pop :接收邮件协议
效果图:
在这里插入图片描述
在这里插入图片描述

点击地址的激活码
在这里插入图片描述
点击继续前往:
在这里插入图片描述
激活成功,点击登录
在这里插入图片描述
这就是通过邮箱进行激活账号的步骤。
接下来看如何通过代码实现:
导入mail.jar包之后创建一个类,然后在里面配置邮箱信息,如下:

package cn.itcast.shop.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 邮件发送工具类
 * 
 * @author LMS
 * 
 */
public class MailUtils {
	/**
	 * 发送邮件的方法
	 * 
	 * @param to
	 *            :收件人
	 * @param code
	 *            :激活码
	 */
	public static void sendMail(String to, String code) {
		/**
		 * 1.获得连接对象
		 * 2.获得一个Session对象 
		 * 3.创建一个代表邮件的对象Message 
		 * 4.发送邮件Transport
		 */
		// 1.获得连接对象
		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "SMTP");
		props.setProperty("mail.host", "smtp.QQ.com");
		props.setProperty("mail.smtp.auth", "true");

		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				// 发送者的账号 和 授权码
				return new PasswordAuthentication("lms0809",
						"授权码");
			}
		};

		// 2.获得一个Session对象 
		Session session = Session.getInstance(props, auth);
		// 3.创建一个代表邮件的对象Message
		Message message = new MimeMessage(session);

		// 4.发送邮件Transport
		try {
			// 设置发件人
			message.setFrom(new InternetAddress("lms0809@qq.com"));
			// 设置收件人,抄送CC,密送BCC
			message.addRecipient(RecipientType.TO, new InternetAddress(to));
			// 设置标题
			message.setSubject("来自网上商城官方激活邮件");
			// 设置邮件正文
			message.setContent(
					"<h1>网上商城商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://localhost:8080/shop/user_active.action?code="
							+ code
							+ "'>http://localhost:8080/shop/user_active.action?code="
							+ code + "</a></h3>", "text/html;charset=utf-8");
			// 发送邮件
			Transport.send(message);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
}

激活码需要到发送人的邮箱里面设置,因为我这里是用QQ邮箱为例子发送,所以打开QQ邮箱 --> 设置 --> 账户 --> 找到授权码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
激活成功返回的方法:

	 /**
	 * 用户激活的方法
	 */
	public String active(){
		//根据激活码查询用户:
		User existUser = userService.findByCode(user.getCode());
		//判断
		if(existUser == null){
			//激活码错误
			this.addActionMessage("激活失败:激活码错误");
		}else{
			//激活码成功
			//修改用户状态
			existUser.setState(1);
			existUser.setCode(null);
			userService.update(existUser);
			this.addActionMessage("激活成功,请去登录!");
		}
		return "msg";
	}

这样子就可以简单地完成邮箱发送激活码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值