Java实现邮箱验证功能

(p.s.减少出现554垃圾邮件

1。先给自己抄送一份:

message.addRecipient(Message.RecipientType.CC, new InternetAddress(from)); //给自己抄送一份,避免出现554

2。给邮件设置header:

message.setHeader("Header", "SHShop激活验证");  //添加header,防止网易出现554垃圾邮件

最近在做课设,需要实现一个邮箱注册的功能,因此需要后台发送邮件来验证。

我选择了网易邮箱。申请邮箱后打开smtp服务。

登录网易邮箱后,在设置里打开smtp功能

Java实现邮箱验证功能_第1张图片

Java实现邮箱验证功能_第2张图片

勾选上面两个框框,然后记住自己的秘钥,之后发邮件时需要验证。


	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,您的验证码为:

" + code + "

,请尽快输入验证码完成注册。谢谢!"; 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。

你可能感兴趣的:(java碎碎片)