java实现邮件发送验证码

   建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好。所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬间就好了。所以去申请个别的邮箱吧。

  用邮件发送验证码,首先需要jar包。我写的代码只需要mail.jar,没有的话可以给我留言,我给你发个。

废话不说了直接上代码(这个代码就是个工具类直接用就好)

package com.itheima.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType; public class MailUtils { public static void sendMail(String email, String emailMsg) throws AddressException, MessagingException {
// 1.创建一个程序与邮件服务器会话对象 Session
// 创建参数配置, 用于连接邮件服务器的参数配置
Properties props = new Properties(); // 参数配置
props.setProperty("mail.transport.protocol", "SMTP");// 使用的协议(JavaMail规范要求)
props.setProperty("mail.host", "smtp.163.com");// // 发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.auth", "true");//请求认证,参数名称与具体实现有关 指定验证为true // 创建验证器
Authenticator auth = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
// 网易邮箱Yang_li_g 用户名 hao123授权码,改为自己的账号和密码
return new PasswordAuthentication("Yang_li_g", "hao123");
}
}; Session session = Session.getInstance(props, auth); // 2.创建一个Message,它相当于是邮件内容
Message message = new MimeMessage(session);
//这里也要改和上面对应,注意后缀和上面设置的一样不然会报错
message.setFrom(new InternetAddress("Yang_li_g@163.com")); // 设置发送者 message.setRecipient(RecipientType.TO, new InternetAddress(email)); // 设置发送方式与接收者 message.setSubject("用户激活");
// message.setText("这是一封激活邮件,请<a href='#'>点击</a>"); message.setContent(emailMsg, "text/html;charset=utf-8"); // 3.创建 Transport用于将邮件发送 Transport.send(message);
}
}

这里是servlet的代码,响应代码如下

		// 发送激活邮件    activeCode:是验证码
String emailMsg = "恭喜您注册成功,请点击下面的连接进行激活账户" + "<a href='http://localhost:8080/Shop/active?activeCode="
+ activeCode + "'>" + "http://localhost:8080/Shop/active?activeCode=" + activeCode + "</a>";
try {
//user.getEmail() :是注册人的邮件用户名
MailUtils.sendMail(user.getEmail(), emailMsg);
} catch (MessagingException e) {
e.printStackTrace();
}

邮件内容你就自己随便写,我这里写的比较简单,实现就好。

网易邮箱开通POP3/SMTP服务的步骤#

先点击设置--》POP3/SMTP/IMAP---》找到开启的选项点击开启---》开启成功后设置密码就好了

我这是设置好的可以看下。设置好了后就可以实现用邮件发验证码了。

用java实现邮件发送验证码的更多相关文章

  1. java mail邮件发送(带附件) 支持SSL

    java mail邮件发送(带附件)有三个类 MailSenderInfo.java package mail; import java.util.Properties; import java.ut ...

  2. JAVA实现邮件发送功能(账号注册验证码、账号激活等)

    第一步,导入JAR包,JAR包下载地址[http://pan.baidu.com/s/1kVRvGyF] 如果是Maven,请直接在Pom文件中加入 <dependency> <gr ...

  3. Java实现邮件发送

      概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <depende ...

  4. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  5. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

  6. Java实现邮箱发送验证码

    第一步,导入JAR包,JAR包下载地址[http://pan.baidu.com/s/1kVRvGyF] 正式代码: 首先书写一个工具类: MailUtil import javax.mail.*; ...

  7. Java Mail 邮件发送简单封装

    上一篇文章我们用写了一个Java Mail 的Demo,相信你已经可以用那个例子来发送邮件了.但是Demo 有很多的问题. 首先每次发送需要配置的东西很多,包括发件人的邮箱和密码.smtp服务器和SM ...

  8. Java Mail 邮件发送Demo

    上周公司的项目要求开发邮件发送功能.自己在网上跟着教程边学边做了一下午,现在基本开发完成了.由于一个同事也想看下该怎么写,顺便学习下.所以我就写成了一遍教程,顺便巩固下邮件发送里面的内容. Demo ...

  9. 纯java实现邮件发送服务(亲测好用)

    今天自己测试了一下用java代码实现发送有限的服务,非常简单.直接贴代码: import com.sun.mail.util.MailSSLSocketFactory; import javax.ma ...

随机推荐

  1. 迭代器_iter_,生成器yeild,三元运算,列表解析(十三)

    迭代器: l = [1, 2, 3, 4] iter = l.__iter__() print(iter) print(iter.__next__()) print(iter.__next__()) ...

  2. poj 1330(RMQ&LCA入门题)

    传送门:Problem 1330 https://www.cnblogs.com/violet-acmer/p/9686774.html 参考资料: http://dongxicheng.org/st ...

  3. EClipse for PHP 中文乱码问题

    UTF-8 格式的php,中文都是乱码. 如果此时在EClipse中输入中文会有 CP1252 错误( CP1252不支持xxxx ) 解决方法: windows->preferences-&g ...

  4. Hive记录-加载文件进行查询操作

    Hive可以运行保存在文件里面的一条或多条的语句,只要用-f参数,一般情况下, 保存这些Hive查询语句的文件通常用.q或者.hql后缀名,但是这不是必须的, 你也可以保存你想要的后缀名.假设test ...

  5. Study 7 —— while循环中止语句

    循环的终止语句break #用于完全结束一个循环,跳出循环体执行循环后面的语句continue #只终止本次循环,接着执行后面的循环 1. 打印0-100,截止到第6次 count = 0 while ...

  6. golang struct tag

    golang可以在struct中的每个字段,写上一个tag.这个tag可以通过反射的机制获取到,最常用的场景就是json序列化和反序列化 package main import ( "enc ...

  7. 微信公众号绑定服务器 Flask版

    python 代码 from flask import Flask, request from flask_cors import CORS app = Flask(__name__) app.app ...

  8. Js/Jquery 关闭 离开或刷新当前页面时提醒,和执行解绑取消提醒

    如图,现在的 cnblogs 或者QQ邮箱编辑页面,刷新.关闭提醒: <script src="../../Common/Js/jquery-1.8.1.min.js"> ...

  9. vue自学入门-3(vue第一个例子)

    1.安装后打开8080端口,http://localhost:8080/#/ 2.进入项目目录 2.默认路由 3.修改文件index.js 将Import HelloWorld一句修改为 import ...

  10. DotNetBar 控件设置空内容时显示内容

    可以通过修改所有关于Watermark时的设置.