欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

电子邮箱**及应用

程序员文章站 2022-03-05 09:04:23
...

电子邮箱的**

1.导入jar包(mail.jar)
电子邮箱**及应用
2.进入qq邮箱或者其他类型邮箱进入如下设置开启,发送短信校验,获得第一行的授权码粘下来保存好(下一步要用)
电子邮箱**及应用
3.邮箱工具类

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public final class MailUtils {
	//设置自己的邮箱号码(修改下方qq邮箱即可)
	private static final String USER = "aaa@qq.com";
	//这个密码就是上一步让记下来的
	private static final String PASSWORD = "zzyzaiivljscbbjg";

	public static boolean sendMail(String to, String text, String title) {
		try {
			final Properties props = new Properties();
			props.put("mail.smtp.auth", "true");
			// 发送协议qq(也可以设置其他类型)
			props.put("mail.smtp.host", "smtp.qq.com");

			// 发件人的账号
			props.put("mail.user", USER);
			// 发件人的密码
			props.put("mail.password", PASSWORD);

			//用于进行SMTP进行身份验证
			Authenticator authenticator = new Authenticator() {
				@Override
				protected PasswordAuthentication getPasswordAuthentication() {
					// 用户名、密码
					String userName = props.getProperty("mail.user");
					String password = props.getProperty("mail.password");
					return new PasswordAuthentication(userName, password);
				}
			};
	
			Session mailSession = Session.getInstance(props, authenticator);
			//创建邮件消息
			MimeMessage message = new MimeMessage(mailSession);
			//设置发件人
			String username = props.getProperty("mail.user");
			InternetAddress form = new InternetAddress(username); // 发件人邮箱
			message.setFrom(form);
			// 设置收件人
			InternetAddress toAddress = new InternetAddress(to);
			message.setRecipient(Message.RecipientType.TO, toAddress);

			//设置邮件标题
			message.setSubject(title);

			//设置邮件的内容体
			message.setContent(text, "text/html;charset=UTF-8");
			// 发送邮件
			Transport.send(message);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}

	// 测试
	public static void main(String[] args) {
		MailUtils.sendMail("电子邮箱", "正文", "标题");
		// 测试的为收件人qq邮箱自定义
		MailUtils.sendMail("aaa@qq.com", "你好,这是一封测试邮件,无需回复", "测试");
		//提示:已发送
		System.out.println("已发送");
	}
}

4.应用(部分注册)

DaoImpl层
//添加用户
	@Override
	public int add(User user) {
		try {
			String sql = "insert into user(uid,username,password,name,email,birthday,sex,state,code) values(?,?,?,?,?,?,?,?,?)" ;
			//更新操作
			int count = qr.update(sql, user.getUid(),
					user.getUsername(),
					user.getPassword(),
					user.getName(),
					user.getEmail(),
					user.getBirthday(),
					user.getSex(),
					user.getState(),
					user.getCode()) ;
			return count ;
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		}	
	}	
//通过**码查询用户(**码是随机生成的)
	@Override
	public User selectUserByCode(String code) {
		//sql
		try {
			String sql = "select * from user where code = ?" ;
			User user = qr.query(sql, new BeanHandler<User>(User.class), code) ;
			return user ;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}
	}
//更新用户
@Override
	public void updateUser(User user) {
		try {
			String sql = "update user set state=? where uid = ?";
			qr.update(sql, user.getState(),user.getUid());
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
ServiceImpl层
//执行注册服务
	@Override
	public boolean register(User user) {	
		if(ud.addUser(user)>0) {
			//注册的同时需要给注册的邮箱发送一个超链接
			String content = "<a href='http://localhost:8080/nov_27/user?method=active&code="+user.getCode()+"'>这是一封**邮件,请您点击**邮箱</a>";
			//发邮箱
			MailUtils.sendMail(user.getEmail(), content,"用户邮箱**");		
			return true;
			}
		return false;
	}
	//注册成功之后,检测code是否有对应的用户
	@Override
	public User activerUser(String code) {
		User user = ud.finUserByCode(code);
		if(user==null) {
			return null;
		}
		user.setState(1);
		ud.updateUser(user);	
		return user;
	}

}
Servlet层
//用户**邮件的业务
	public String active(HttpServletRequest request, HttpServletResponse response) {

		String code = request.getParameter("code");

		User user = us.activerUser(code);
		if (user != null) {
			//若满足条件的用户存在,则提示信息页面显示,邮箱**成功,并可点击请您登陆跳转到登录页面
			request.setAttribute("msg", "邮件**成功,<a href='http://localhost:8080/nov_27/user?method=loginUI'>请您登录</a>");
		} else {
			//若不存在,则提示邮箱**失败
			request.setAttribute("msg", "您的邮件**失败");
		}
		return "/jsp/msg.jsp";
	}