1.開通smtp授權
QQ郵箱-設置-賬戶-開啟
得到一個授權碼
2.下載javax.email包
maven項目中
pom文件加入:
<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.5</version> </dependency>
3.方法:
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
//email 你要發給誰 //authcode 驗證碼
public static void email(String email,Integer authcode)throws Exception {
Properties properties = new Properties();
properties.setProperty("mail.transport.protocol", "smtp");//發送郵件協議
properties.setProperty("mail.smtp.auth", "true");//需要驗證
//properties.setProperty("mail.debug", "true");//設置debug模式 后台輸出郵件發送的過程
Session session = Session.getInstance(properties);
session.setDebug(true);//debug模式
//郵件信息
Message messgae = new MimeMessage(session);
messgae.setFrom(new InternetAddress("測試@sina.com"));//設置發送人
messgae.setText("你的驗證碼為:"+authcode+"。請注意,驗證碼有效時間為2分鍾!!!");//設置郵件內容
messgae.setSubject("郵箱驗證");//設置郵件主題
//發送郵件
Transport tran = session.getTransport();
tran.connect("smtp.sina.com", 25, "郵箱賬戶", "郵箱授權碼");//連接到新浪郵箱服務器
// tran.connect("smtp.qq.com",587, "Michael8@qq.vip.com", "xxxx");//連接到QQ郵箱服務器
tran.sendMessage(messgae, new Address[]{ new InternetAddress(email)});//設置郵件接收人
tran.close();
}
4.驗證邏輯
點擊發送時生成一串隨機數字,存一份發一份,驗證即可。
搞定。