java發送郵件

jopen 9年前發布 | 4K 次閱讀 Java

    package dec;

import java.util.Properties;  
import javax.mail.Message;  
import javax.mail.MessagingException;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.AddressException;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;  
/** 
 *  
 *  
 * <p>Title: Java發送郵件測試類 /p> 
 * 
 * <p>Description: 示例 業務類</p> 
 * 
 * <p>Copyright: Copyright (c) 2012</p> 
 * 
 * 
 * @author dml@2012-12-17 
 * @version 1.0 
 */  

/**************************************************************** 
 * 對QQ郵箱使用(對于其他的使用類似的你應該也會更改了) 首先把QQ郵箱的POP3 SMTP打開 首先確定你的網絡正常、非代理 
 * 【確定你的QQ郵箱開啟了SMTP】!!!! 如果沒有開啟,那么這樣設置下 設置->賬戶 --在下面-- 把這個選上 [√]SMTP發信后保存到服務器 
 ****************************************************************/  
public class JavaMail {  

    // 設置服務器  
    private static String KEY_SMTP = "mail.smtp.host";  
    private static String VALUE_SMTP = "smtp.qq.com";  
    // 服務器驗證  
    private static String KEY_PROPS = "mail.smtp.auth";  
    private static boolean VALUE_PROPS = true;  
    // 發件人用戶名、密碼  
    private String SEND_USER = "********@qq.com";  
    private String SEND_UNAME = "********";  
    private String SEND_PWD = "*******";  
    // 建立會話  
    private MimeMessage message;  
    private Session s;  

    /* 
     * 初始化方法 
     */  
    public JavaMail() {  
        Properties props = System.getProperties();  
        props.setProperty(KEY_SMTP, VALUE_SMTP);  
        props.put(KEY_PROPS, VALUE_PROPS);  
        s = Session.getInstance(props);  
        /* s.setDebug(true);開啟后有調試信息 */  
        message = new MimeMessage(s);  
    }  

    /** 
     * 發送郵件 
     *  
     * @param headName 
     *            郵件頭文件名 
     * @param sendHtml 
     *            郵件內容 
     * @param receiveUser 
     *            收件人地址 
     */  
    public void doSendHtmlEmail(String headName, String sendHtml,  
            String receiveUser) {  
        try {  
            // 發件人  
            InternetAddress from = new InternetAddress(SEND_USER);  
            message.setFrom(from);  
            // 收件人  
            InternetAddress to = new InternetAddress(receiveUser);  
            message.setRecipient(Message.RecipientType.TO, to);  
            // 郵件標題  
            message.setSubject(headName);  
            String content = sendHtml.toString();  
            // 郵件內容,也可以使純文本"text/plain"  
            message.setContent(content, "text/html;charset=GBK");  
            message.saveChanges();  
            Transport transport = s.getTransport("smtp");  
            // smtp驗證,就是你用來發郵件的郵箱用戶名密碼  
            transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);  
            // 發送  
            transport.sendMessage(message, message.getAllRecipients());  
            transport.close();  
            System.out.println("send success!");  
        } catch (AddressException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (MessagingException e) {  
            e.printStackTrace();  
        }  
    }  

    public static void main(String[] args) {  
        JavaMail se = new JavaMail();  
        se.doSendHtmlEmail("郵件頭文件名", "郵件內容", "*******@***.com");  
    }  
}  </pre> 


所需jar包只有一個, mail.jar


需要注意的是,執行程序前需要保證郵箱開啟了SMTP,本例使用QQ郵箱進行測試

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!