• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Javaweb网上商城项目实战(8)实现用户激活邮件发送

项目实战 Geekerstar 11个月前 (05-17) 275次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

修改MailUtils.java

MailUtils.java是我们之前导入的工具类,这个工具类可以实现注册激活邮件的发送,我们先修改一下url和我们项目路径一致,并进行测试,通过后再做后续工作,完整代码如下:

package com.geekerstar.store.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
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;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {

	public static void sendMail(String email, String emailMsg)
			throws AddressException, MessagingException {
		// 1.创建一个程序与邮件服务器会话对象 Session

		Properties props = new Properties();
		//设置发送的协议
		//props.setProperty("mail.transport.protocol", "SMTP");
		
		//设置发送邮件的服务器
		//props.setProperty("mail.host", "smtp.126.com");
		//props.setProperty("mail.smtp.auth", "true");// 指定验证为true

		// 创建验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				//设置发送人的帐号和密码
				return new PasswordAuthentication("admin@store.com", "admin");
			}
		};

		Session session = Session.getInstance(props, auth);

		// 2.创建一个Message,它相当于是邮件内容
		Message message = new MimeMessage(session);

		//设置发送者
		message.setFrom(new InternetAddress("admin@store.com"));

		//设置发送方式与接收者
		message.setRecipient(RecipientType.TO, new InternetAddress(email)); 

		//设置邮件主题
		message.setSubject("用户激活");
		// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");

		String url="http://localhost:8080/store_v1/UserServlet?method=active&code="+emailMsg;
		String content="<h1>来自极客商城的激活邮件!激活请点击以下链接!</h1><h3><a href='"+url+"'>"+url+"</a></h3>";
		//设置邮件内容
		message.setContent(content, "text/html;charset=utf-8");

		// 3.创建 Transport用于将邮件发送
		Transport.send(message);
	}
	public static void main(String[] args) throws AddressException, MessagingException {
		MailUtils.sendMail("aaa@store.com", "123456789");
	}
}

修改完代码接下来简单测试一下,右键–>Run as –> java application,然后返回Foxmail,点击收取,如果收到激活邮件表示功能无误。

完成用户激活

接下来完善UserServlet的userRegist方法,在注册成功之前(42行)添加如下代码

// 发送邮件
MailUtils.sendMail(user.getEmail(), user.getCode());

然后先在数据库中删除原来的那个aaa用户重新运行项目,打开主页,点击注册,输入信息

注意邮箱要输入aaa@store.com,点击注册,提示注册成功。

然后查看数据库中是否已添加刚才注册的用户,并注意观察state的值都是0

然后打开Foxmail,点击收取,此时我们接到注册邮件,点击链接,完成注册

注意:至此注册功能已完成,但是激活功能还没做完,下一节我们继续完成激活功能

源码下载

下载地址
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Javaweb网上商城项目实战(8)实现用户激活邮件发送
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00