(p.s.减少出现554垃圾邮件
1。先给自己抄送一份:
message.addRecipient(Message.RecipientType.CC, new InternetAddress(from)); //给自己抄送一份,避免出现554
2。给邮件设置header:
message.setHeader("Header", "SHShop激活验证"); //添加header,防止网易出现554垃圾邮件
)
最近在做课设,需要实现一个邮箱注册的功能,因此需要后台发送邮件来验证。
我选择了网易邮箱。申请邮箱后打开smtp服务。
登录网易邮箱后,在设置里打开smtp功能
勾选上面两个框框,然后记住自己的秘钥,之后发邮件时需要验证。
public String from = "xxxxxxx"; //发件方
public String auth = "xxxxxxx"; //你开启smtp服务时设置的秘钥,非邮箱登录密码
public String to= "xxxxxxx"; //收件方
public Integer call() throws Exception {
// TODO Auto-generated method stub
int code = getRandomCode();
String contentString = "尊敬的用户,感谢您注册SHShop,您的验证码为:<h3>" + code + "</h3>,请尽快输入验证码完成注册。谢谢!";
Properties prop = new Properties();
prop.put("mail.host", "smtp.yeah.net");
prop.put("mail.transport.protocol", "smtp");
prop.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(prop);
session.setDebug(true); //开启发邮件时dubug,
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setHeader("Header", "SHShop激活验证"); //添加header,防止网易出现554垃圾邮件
message.addRecipient(Message.RecipientType.CC, new InternetAddress(from));//先给自己抄送一份,可以减少出现554垃圾邮件
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("SHShop激活验证"); //设置邮箱主题
Multipart multipart = new MimeMultipart(); //向multipart中加载邮箱各个部分内容,包括文本和附件
BodyPart contentPart = new MimeBodyPart(); //设置邮件文本内容
contentPart.setContent(contentString, "text/html; charset=utf-8");
multipart.addBodyPart(contentPart);
message.setContent(multipart);
message.saveChanges(); //保存变化
Transport transport = session.getTransport("smtp"); //链接服务器的邮箱
transport.connect("smtp.yeah.net",from, auth); //auth是你开启smtp时设置证书,不是邮箱密码
transport.sendMessage(message, message.getAllRecipients());
transport.close();
return code;
}catch (Exception e) {
// TODO: handle exception
return 0;
}
}
private int getRandomCode () {
int code = (int)(Math.random()*9000) + 1000;
return code;
}
ok。