利用JavaMail發送郵件:smtp.163.com


一、利用JavaMail發送郵件案例:

1、maven項目結構:

2、先在pom.xml里邊加入Javamail依賴,系統會根據坐標自動下載mail包(前提是配置好了maven):

3、配置email.properties屬性文件,主要是為了不更改代碼的前提下,該改變發送郵件的一些基本信息:

4、實現發送郵件的主體類SendMailUtils,代碼下:

package top.hzelin.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;



public class SendMailUtils {
    private static String from = "";
    private static String user = "";
    private static String password = "";
    /*
     * 讀取屬性文件的內容,並為上面上個屬性賦初始值
     */
    static {
        Properties prop = new Properties();
        InputStream is = SendMailUtils.class.getClassLoader().getResourceAsStream("email.properties");
        try {
            prop.load(is);
            from = prop.getProperty("from");
            user=prop.getProperty("username");
            password=prop.getProperty("password");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void sendMail(String to,String text,String title) {
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", "smtp.163.com");//設置郵件服務器主機名
        props.put("mail.smtp.host", "smtp.163.com");
        props.put("mail.smtp.auth", "true");//發送服務器需要身份驗證
        Session session = Session.getDefaultInstance(props);//設置環境信息
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        Multipart multipart = null;
        BodyPart contentPart = null;
        Transport transport = null;
        try {
            message.setFrom(from);//設置發件人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(title);
            multipart = new MimeMultipart();//設置附件
            contentPart = new MimeBodyPart();
            contentPart.setContent(text, "text/html;charset=utf-8");
            multipart.addBodyPart(contentPart);
            message.setContent(multipart);
            message.saveChanges();
            transport = session.getTransport("smtp");
            transport.connect("smtp.163.com", user, password);
            transport.sendMessage(message, message.getAllRecipients());
        } catch (MessagingException e) {
            
            e.printStackTrace();
        }finally {
            try {
                transport.close();
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }
        
        
        
    }

}

5、測試發送郵件功能是否可用SendEmailTest:

注意:email.properties配置文件中的密碼應該是客戶端授權碼,不是登錄密碼,設置位置如下:

 


免責聲明!

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



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