1. 程式人生 > >java傳送郵件例項

java傳送郵件例項

JavaMail傳送郵件到qq郵箱:前提是QQ郵箱裡帳號設定要開啟POP3/SMTP協議,步驟如下:

​​​​​​​1. 登陸你的QQ即可,找到QQ郵箱圖示。

2.進入郵箱後後點選設定。    

3.找到賬戶。

4.往下拉將POP3/SMTP開啟。  

5.開啟後會給你一個授權碼,授權碼要記下來,後面的程式碼要用。

接下來就是程式碼了

首先在pom檔案中加入 javaemail 的依賴:

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

程式碼如下:

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

/**
 * JavaMail傳送郵件:前提是QQ郵箱裡帳號設定要開啟POP3/SMTP協議
 */
public class SendEmail {

    public static void main(String[] args) throws Exception {

        Properties prop = new Properties();
// 開啟debug除錯,以便在控制檯檢視
        prop.setProperty("mail.debug", "true");
// 設定郵件伺服器主機名
        prop.setProperty("mail.host", "smtp.qq.com");
// 傳送伺服器需要身份驗證
        prop.setProperty("mail.smtp.auth", "true");
// 傳送郵件協議名稱
        prop.setProperty("mail.transport.protocol", "smtp");

// 開啟SSL加密,否則會失敗
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.ssl.socketFactory", sf);

// 建立session
        Session session = Session.getInstance(prop);
// 通過session得到transport物件
        Transport ts = session.getTransport();
// 連線郵件伺服器:郵箱型別,帳號,授權碼代替密碼(更安全)
        // 後面的字元是授權碼,用qq密碼反正我是失敗了(用自己的,別用我的,這個號是我瞎編的,為了。。。。)
        ts.connect("smtp.qq.com", "1130013558", "xqmoijbeswstbacf");
// 建立郵件
        Message message = createSimpleMail(session);
// 傳送郵件
        ts.sendMessage(message, message.getAllRecipients());
        ts.close();
    }

    public static MimeMessage createSimpleMail(Session session)
            throws Exception {
// 建立郵件物件
        MimeMessage message = new MimeMessage(session);
// 指明郵件的發件人
        message.setFrom(new InternetAddress("
[email protected]
")); // 指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發 message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); // 郵件的標題 message.setSubject("JavaMail測試"); // 郵件的文字內容 message.setContent("JavaMail傳送郵件的內容!", "text/html;charset=UTF-8"); // 返回建立好的郵件物件 return message; } }