實用代碼|javaMail發送郵件(文末重磅資源!)

天天進步一點點,距離大腿又近一步!閱讀本文大概須要5分鐘css

JavaMail發送郵件,簡單實用,瞭解一下唄~

1.開啓郵箱MAP/SMTP服務,獲取第三方受權碼

以QQ郵箱爲例html

image

2.主要代碼

maven依賴java

<dependency>    
<groupId>javax.mail</groupId>   
 <artifactId>mail</artifactId>    
<version>1.4</version></dependency>
<dependency>    
<groupId>javax.activation</groupId>   
 <artifactId>activation</artifactId>    
<version>1.1</version>
</dependency>

Email工具類面試

public class EmailUtil {
    // 發件人電子郵箱
    private static String from = "XXXXXXX@qq.com";
    // 指定發送郵件的服務器
    private static String host = "smtp.qq.com";
    // 獲取系統屬性
    private static Properties properties = System.getProperties();
    private static MimeMessage message;

     static
       {
           // 設置郵件服務器
           properties.setProperty("mail.smtp.host", host);
           //設置郵件服務器端口號(默認爲25)
           properties.setProperty("mail.smtp.port", "587");
           // 是否用戶認證
           properties.put("mail.smtp.auth", "true");
           // 獲取默認session對象
          Session session = Session.getDefaultInstance(properties,new Authenticator(){
            public PasswordAuthentication getPasswordAuthentication()
            {
                //發件人郵件用戶名、密碼(有些可直接使用登陸密碼,
                //而QQ郵箱須要使用第三方受權碼,這個須要根據郵箱判斷)
                return new PasswordAuthentication("XXXXXXX@qq.com", "XXXXXXX"); 
            }
           });

          try{
             // 建立默認的 MimeMessage 對象
              message = new MimeMessage(session);

             // Set From: 頭部頭字段
             message.setFrom(new InternetAddress(from));

          }catch (MessagingException mex) {
             mex.printStackTrace();
          }
       }

     static public void sendEmail(String toUser,String ccUser,String headTitle,String htmlContent){
         try {
            //使用的單例模式,發送過郵件後,message中收件人,抄送人等信息不會被清空,需手動清空
            //清空收件人
            message.removeHeader(Message.RecipientType.TO.toString());
            //添加多個收件人
            message.addRecipients(Message.RecipientType.TO, new InternetAddress().parse(toUser));
            //清空抄送人
            message.removeHeader(Message.RecipientType.CC.toString());
            //添加多個抄送人
             message.setRecipients(Message.RecipientType.CC, new InternetAddress().parse(ccUser));
             // 設置標題
             message.setSubject(headTitle);
             // 設置純文本內容
             //message.setText("測試文本", "utf-8");
             // 設置html格式內容
             message.setText(htmlContent, "utf-8", "html");
             // 發送消息
             Transport.send(message);
             System.out.println("----------------Sent Email successfully------------");
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

     }

     static public String createHtmlContent(){
         return "<html lang='en' style='margin: 0; padding: 0; font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; font-size: 14px; text-align: center; word-break: normal; font-weight: normal;'>"
                + "<head>"
                + "<style type='text/css'>body {border-width:0;margin:0}img {border:0;margin:0;padding:0}</style><base target='_blank' />"
                + "</head>"
                + "<p>尊敬的xxx用戶:</p>"
                + "<p>您好!</p>"
                + "<p>您有一個審批工單待處理,可<b>點擊工單號</b>跳轉進入系統</p>"
                + "<table border='3'  cellpadding='3'>"
                + "<tr><th>工單號</th><th>工單狀態</th><th>工單類型</th><th>申請日期</th><th>申請人</th><th>建立時間</th>"
                + "</tr>"
                + "<tr><td><a href='http://192.168.60.160:8888/PMIS/ticketManageDetail/123'>GD12345</a></td><td>待審批</td>"
                + "<td>保障工單</td><td></td><td>2018-07-60</td><td>張三</td><td>2018-07-6 21:56:00</td>"
                + "</tr>"
                + "</table>"
                + "<p style='color:gray;font-size:12px;'>若未登陸系統,請登陸系統後,從新點擊工單號進入工單詳情頁面</p>"
                + "<p style='font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; text-align: center; word-break: normal; font-weight: normal; display: block; max-width: 540px; margin: 20px auto 0; padding: 0 5px; color: #bdbdbd; font-size: 12px; line-height: 22px;'>郵件來自【XXX系統】自動提醒,無需回覆。<br style='margin: 0; padding: 0; font-family: Helvetica Neue, Microsoft Yahei, Hiragino Sans GB, WenQuanYi Micro Hei, sans-serif; font-size: 14px; text-align: center; word-break: normal; font-weight: normal;'></p>"
                + "</html>";
     }

    public static void main(String[] args){
        sendEmail("XXXXXXX@qq.com","XXXXXXX@qq.com,XXXXXXX@qq.com","標題:xxx",createHtmlContent());
     }

重磅好消息:小編考慮到同窗們對學習資源的迫切需求,近期將整理出學習視頻庫和電子書庫,你想要的資源全在這裏,該資源永久有效,不斷更新,敬請期待!shell

你若對某方向的資源迫切須要,可添加小編微信【381793016】,備註【資源:XXX】,小編將重點整理!服務器

熱門閱讀:微信

java面試| 精選基礎題(1)session

java面試|精選基礎題(2)maven

【推薦兩款神器】不限速下載、追劇神器工具

實用代碼| shell腳本實現定時檢查應用狀態


**歡迎關注微信「java從心」
一個立志成大腿而天天努力奮鬥的年輕人
期待你的到來!**

image

若是以爲文章不錯,請點個贊、分享給你的朋友唄!

相關文章
相關標籤/搜索