Java 實現發送郵件

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章