JAVA實現發送電子郵件


  相信大家對於網站也好,手機app也好,用戶注冊時,需要進行郵箱驗證的功能特別好奇吧,本篇我將帶領大家一起實現一下這個簡單而又神奇的小功能,讓我們的應用也可以加入這些神奇的元素。廢話不多說,下面開始我們今天的內容介紹。

  首先實現上面的功能,需要一個固定的發送電子郵件的郵箱地址,這里我們就以我們經常使用的QQ郵箱為例實現一下這個功能。

  第一件事,你需要開啟QQ郵箱的IMAP/SMAP服務:

  登錄QQ郵箱-->設置-->賬號-->開啟IMAP/SMAP與P0P3/SMAP

  

  

  

  開啟這兩個時,你會獲得兩個密碼,接下來的內容中會使用到。

  發送電子郵件服務,需要使用到一下三個JAR包:mail.jar;activation.jar;cos.jar,這里我已經幫大家整理好了,下載地址:http://pan.baidu.com/s/1sknsZOp,下載好我們的JAR包,導入到我們工程的lib目錄下即可。

  發送電子郵件的JAVA代碼如下:

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * 使用QQ郵箱IMAP/SMTP的實現發送電子郵件
 * 2015-12-06
 */
public class Mail {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.qq.com");
        props.put("mail.smtp.port", "587");//使用465或587端口
        props.put("mail.smtp.auth", "true");//設置使用驗證
        props.put("mail.smtp.starttls.enable","true");//使用 STARTTLS安全連接
        try {
            PopupAuthenticator auth = new PopupAuthenticator();
            Session session = Session.getInstance(props, auth);
            session.setDebug(true);//打印Debug信息
            MimeMessage message = new MimeMessage(session);
            Address addressFrom = new InternetAddress(PopupAuthenticator.mailuser + "@qq.com", "");//第一個參數為發送方電子郵箱地址;第二個參數為發送方郵箱地址的標簽
            Address addressTo = new InternetAddress("xxxxxxxxxxxx", "");//第一個參數為接收方電子郵箱地址;第二個參數為接收方郵箱地址的標簽
            message.setSubject("發送電子郵件的主題");
            message.setText("發送電子郵件內容");
            message.setFrom(addressFrom);
            message.addRecipient(Message.RecipientType.TO, addressTo);
            message.saveChanges();
            Transport transport = session.getTransport("smtp");
            transport.connect("smtp.qq.com", PopupAuthenticator.mailuser, PopupAuthenticator.password);
            transport.send(message);
            transport.close();
            System.out.println("發送成功");
        } catch (Exception e) {
            System.out.println(e.toString());
            System.out.println("發送失敗");
        }
    }
}

class PopupAuthenticator extends Authenticator {
    public static final String mailuser = "1453296946";//發送方郵箱'@'符號前的內容:1453296946@qq.com
    public static final String password = "xxxxxxxxxxxx";//成功開啟IMAP/SMTP服務,在第三方客戶端登錄時,騰訊提供的密碼。注意不是郵箱密碼

    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(mailuser, password);
    }
}

  是不是很簡單,接下來我們的郵箱驗證、登錄驗證、注冊驗證、找回密碼是不是都找到實現的方向啦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM