在很多网站注册信息的时候都需要填写邮箱,这样会给你发送一份激活邮件,通过激活邮件来保证用户信息在一定程度上的可靠度。
那么激活邮件的发送是怎么实现的呢?
代码:
<span style="font-size:18px;">public class MailUitls {
public static final String HOST = "smtp.163.com";
public static final String PROTOCOL = "smtp";
public static final int PORT = 25;
public static final String SENDER = "18730601548@163.com";//此处需要与host相同的网站
public static final String SENDERPWD = "*******";
/**
* 发送邮件的方法
* @param to :收件人
* @param code :激活码
*/
public static void sendMail(String to ,String code){
/**
* 1.获得一个Session的对象
* 2、创建一个代表邮件的对象Message
* 3.发送邮件Transport
*
*/
//1.获得链接对象
Properties props=new Properties();
//props.setProperty("mail.host", "localhost");
//props.put("", value)
props.put("mail.smtp.host", HOST);//设置服务器地址
props.put("mail.store.protocol" , PROTOCOL);//设置协议
props.put("mail.smtp.port", PORT);//设置端口
props.put("mail.smtp.auth" , true);
Session session =Session.getInstance(props,new Authenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(SENDER,SENDERPWD);
}
});
//2.创建邮箱对象
Message message =new MimeMessage(session);
//设置收件人:
try {
//message.setFrom(new InternetAddress("service@shop.com"));
message.setFrom(new InternetAddress(SENDER));
//设置收件人:
message.addRecipient(RecipientType.TO, new InternetAddress(to));
//抄送CC 密送 BCC
//设置标题
message.setSubject("来自落叶飞羽的激活邮件!");
//设置邮件正文
message.setContent("<h1>激活邮件!点击下面的链接</h1><h3><a href='http://192.168.24.103:8080/SSHshop/user_active.action?code="+code+"'>http://192.168.24.103:8080/SSHshop/user_active.action?code="+code+"</a></h3>","text/html;charset=UTF-8");
//3.发送邮件
Transport.send(message);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main (String[] args){
sendMail("18730601548@163.com","111111");
}
}</span>
在用户注册的时候调用此方法,传入用户的邮箱地址和生成的UUID的激活码,便会给该用户的邮箱发送激活邮件,用户点击激活邮件中的链接,用户才算注册完成,可以登录,登录的时候,如何判断该用户是否已经激活。这需要在用户的表结构中添加激活状态字段,和用于保存用户的激活码字段。