java實現郵件功能,其實很簡單的,只需要引入mail.jar即可實現
菜鳥教程:https://www.runoob.com/java/java-sending-email.html
這裏已qq郵箱爲例,作爲發送方。。。,核心步驟如下:
qq郵箱的設置在QQ郵箱-->設置-->賬號-->進行設置
1、開啓 POP3/SMTP服務,獲取授權碼
2、核心代碼
package com.ssm.core.Test;
import java.security.GeneralSecurityException;
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;
import com.sun.mail.util.MailSSLSocketFactory;
public class SendMailUtil {
//郵件服務器主機地址
// private static String HOST="localhost";
private static String HOST="smtp.qq.com";
//帳號
private static String ACCOUNT = "[email protected]";
//授權碼
private static String PASSWORD = "mmmmm";
/**
* @param toUser 收件方
* @param title 郵件標題
* @param emailMsg 郵件內容
* @throws GeneralSecurityException
*/
public static void sendMail(String toUser,String title, String emailMsg)throws AddressException, MessagingException, GeneralSecurityException {
// 1.創建一個程序與郵件服務器會話對象 Session
Properties props = new Properties();
//設置發送的協議
props.setProperty("mail.transport.protocol", "SMTP");
//設置發送郵件的服務器
props.setProperty("mail.host", HOST);
props.setProperty("mail.smtp.auth", "true");// 指定驗證爲true
//QQ郵箱,還要設置SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
// 創建驗證器
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//設置發送人的帳號和密碼 帳號 授權碼
return new PasswordAuthentication(ACCOUNT, PASSWORD);
}
};
//會話
Session session = Session.getInstance(props, auth);
// 2.創建一個Message,它相當於是郵件內容
Message message = new MimeMessage(session);
//設置發送者
message.setFrom(new InternetAddress(ACCOUNT));
//設置發送方式與接收者
message.setRecipient(RecipientType.TO, new InternetAddress(toUser));
//設置郵件主題
message.setSubject(title);
message.setText("這是一封激活郵件(測試),請<a href='#'>點擊</a>");
//設置郵件內容
message.setContent(emailMsg, "text/html;charset=utf-8");
// 3.創建 Transport用於將郵件發送
Transport.send(message);
}
//運行main方法,發送郵件
public static void main(String[] args) throws AddressException, MessagingException, GeneralSecurityException {
SendMailUtil.sendMail("[email protected]", "郵件測試", "哈哈哈這是正文,郵件測試");
}
}
收件截圖:
做pc網站開發,經常註冊需要實現郵件激活的功能,以上的核心代碼,可以實現,
這裏有篇文章不錯:https://www.cnblogs.com/liuzhihu/p/8184883.html