天天看點

發送QQ郵件功能

相對于的jar包

<!--    Emaill郵件發送-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>      

代碼

package com.item.demoMin;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

public class QQEmail implements Runnable{

    String email;
    public QQEmail(String email) {
        this.email = email;
    }

    public void run() {
        // 1.建立連接配接對象javax.mail.Session
        // 2.建立郵件對象 javax.mail.Message
        // 3.發送一封激活郵件
        String from = "[email protected]";// 發件人電子郵箱
        String host = "smtp.qq.com"; // 指定發送郵件的主機smtp.qq.com(QQ)|smtp.163.com(網易)
        Properties properties = System.getProperties();// 擷取系統屬性

        properties.setProperty("mail.smtp.host", host);// 設定郵件伺服器
        properties.setProperty("mail.smtp.auth", "true");// 打開認證
        properties.setProperty("mail.smtp.port", "25");//不加這個則一樣是預設25端口

        try {
            //QQ郵箱需要下面這段代碼,163郵箱不需要
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            properties.put("mail.smtp.ssl.enable", "true");
            properties.put("mail.smtp.ssl.socketFactory", sf);


            // 1.擷取預設session對象
            Session session = Session.getDefaultInstance(properties, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("[email protected]", "vfgqzlrqcyivcdss"); // 發件人郵箱賬号、授權碼
                }
            });

            // 2.建立郵件對象
            Message message = new MimeMessage(session);
            // 2.1設定發件人
            message.setFrom(new InternetAddress(from));
            // 2.2設定接收人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
            // 2.3設定郵件主題
            message.setSubject("模拟郵件");
            // 2.4設定郵件内容
            String content = "<html><head></head><body><h1>"
                    + "模拟郵件 Over"
                    + "</h1></href></h3></body></html>";
            message.setContent(content, "text/html;charset=UTF-8");
            // 3.發送郵件
            Transport.send(message);
            System.out.println("郵件成功發送!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new QQEmail("[email protected]").run();
    }
}