邮件发送的两种常见的协议:
- smtp : 用于邮件的发送;
- pop : 用于邮件的接受;
邮件发送应注意的事项:
1.获得一个Session对象.
2.创建一个代表邮件的对象Message.
3.发送邮件Transport
代码部分:
public static void sendMail(String to,String code){
/**
* to 是即将发送的邮件的接收方
* code 是激活代码
* 1.获得一个Session对象.
* 2.创建一个代表邮件的对象Message.
* 3.发送邮件Transport
*/
// 1.获得连接对象
Properties props = new Properties();
// 这里设置的是发送方的邮箱的主机
props.setProperty("mail.host", "邮箱主机");
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("发送方的邮箱地址", "邮箱密码");
}
});
// 2.创建邮件对象:
Message message = new MimeMessage(session);
// 设置发件人:
try {
message.setFrom(new InternetAddress("发送方邮箱地址"));
// 设置收件人:
message.addRecipient(RecipientType.TO, new InternetAddress(to));
// 抄送 CC 密送BCC
// 设置标题
message.setSubject("在此处设置邮件的标题");
// 设置邮件正文:
message.setContent("在此处设置邮件的正文");
// 3.发送邮件:
Transport.send(message);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
如何根据邮箱来激活用户
用户邮箱中的链接包含了激活码,根据激活码来进入相应的action,从而实现对应的方法,最中激活用户。
激活用户时,记得先查询用户是否存在,以免非法用户修改激活码而激活了其他的非法用户。
如果想要根据不同的结果,发送不同的消息给客户端。那么建议采用this.addActionMessage(msg);方便且简洁。使用request或者session都有些大材小用。
激活完成以后,记得清除激活码,设为空。
激活码的生成
说了这么多,那么怎么生成激活码呢?我么就可以选择使用UUID来生成激活码:代码如下:
public class UUIDUtils {
//生成随机激活码
public static String getUUID(){
return UUID.randomUUID().toString().replace("-", "");
}
}//因为系统生成的随机码有“-”,所以我们选择删除,使激活码连贯!