1. 程式人生 > >Java 傳送郵件 傳入收件郵箱和郵件內容,返回傳送狀態

Java 傳送郵件 傳入收件郵箱和郵件內容,返回傳送狀態

import java.util.Date;
import java.util.Properties;


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


import com.alibaba.fastjson.JSONObject;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;   

public JSONObject SendMailToUser(String receiveAcc, String content) {
    JSONObject obj = new JSONObject();
        // 1. 建立引數配置, 用於連線郵件伺服器的引數配置
        Properties props = new Properties();                    // 引數配置
        props.setProperty("mail.transport.protocol", "smtp");   // 使用的協議(JavaMail規範要求)
        props.setProperty("mail.smtp.host", myEmailSMTPHost);   // 發件人的郵箱的 SMTP 伺服器地址
        props.setProperty("mail.smtp.auth", "true");            // 需要請求認證
        final String smtpPort = "465";
        props.setProperty("mail.smtp.port", smtpPort);
        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.socketFactory.port", smtpPort);
        
        // 2. 根據配置建立會話物件, 用於和郵件伺服器互動
        Session session = Session.getInstance(props);
        session.setDebug(true);                                 // 設定為debug模式, 可以檢視詳細的傳送 log
        try{
   // 3. 建立一封郵件
   MimeMessage message = createMimeMessage(content, session, myEmailAccount, receiveAcc);

   // 4. 根據 Session 獲取郵件傳輸物件
   Transport transport = session.getTransport();

   // 5. 使用 郵箱賬號 和 密碼 連線郵件伺服器, 這裡認證的郵箱必須與 message 中的發件人郵箱一致, 否則報錯
   transport.connect(myEmailAccount, myEmailPassword);

   // 6. 傳送郵件, 發到所有的收件地址, message.getAllRecipients() 獲取到的是在建立郵件物件時新增的所有收件人, 抄送人, 密送人
   transport.sendMessage(message, message.getAllRecipients());

   // 7. 關閉連線
   transport.close();
   obj.put("status", true);
obj.put("message", "Success");
return obj;
        }catch (Exception e){
        obj.put("status", false);
        obj.put("message", e.getMessage());
        return obj;
        }
    }


    /**
     * 建立一封只包含文字的簡單郵件
     *
     * @param session 和伺服器互動的會話
     * @param sendMail 發件人郵箱
     * @param receiveMail 收件人郵箱
     * @return
     * @throws Exception
     */
    public MimeMessage createMimeMessage(String content, Session session, String sendMail, String receiveMail) throws Exception {
        // 1. 建立一封郵件
        MimeMessage message = new MimeMessage(session);


        // 2. From: 發件人
        message.setFrom(new InternetAddress(sendMail, "測試傳送人", "UTF-8"));


        // 3. To: 收件人
        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "測試傳送", "UTF-8"));


        // 4. Subject: 郵件主題
        message.setSubject("測試郵件主題", "UTF-8");


        // 5. Content: 郵件正文
        message.setContent(content, "text/html;charset=UTF-8");


        // 6. 設定發件時間
        message.setSentDate(new Date());


        // 7. 儲存設定
        message.saveChanges();
        return message;
    }

相關推薦

Java 傳送郵件 傳入郵箱郵件內容,返回傳送狀態

import java.util.Date; import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.In

dovecot+mysql 服務 空殼郵件

郵件服務器 linux include 認證 share 1.yum install dovecot dovecot-mysql.x86_64 -y ##dovecot是一個開源的 IMAP 和 POP3 郵件服務器,支持 Linux,支持發送郵件 ##dovecot

java學習筆記(九):Java 流(Stream)、文(File)IO

用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready Java 的控制臺輸入由 System.in 完成。 為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要i

Java建立寫入word文圖片文字

需要的jar <!-- 寫word --> <dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId

Exchange企業實戰技巧:郵件中使用數字簽名郵件加密功能

clip 節點 模式 chan 打開 ont 發送 菜單欄 電子郵件 SMTP最初是為了在封閉的網絡中傳送相對來說不太重要的簡短郵件,因此SMTP傳輸郵件時,安全性不高。自從安全、多用途INTERNET郵件擴展(S/MIME)成為增強SMTP電子郵件安全功能的標準,使得實現

關於java中創建文,並且寫入內容

tle 數據 www. port end ret 刪除文件 ava json 以下內容完全為本人原創,如若轉載,請註明出自:http://www.cnblogs.com/XiOrang/ 前兩天在項目中因為要通過http請求獲取一個比較大的json數據(300KB左右)

Java併發程式設計:Callable、FutureFutureTask 獲取返回

     在前面的文章中我們講述了建立執行緒的2種方式,一種是直接繼承Thread,另外一種就是實現Runnable介面。   這2種方式都有一個缺陷就是:在執行完任務之後無法獲取執行結果。   如果需要獲取執行結果,就必須通過共享變數或者使用執行緒通訊的方式來達到效果,這樣使用起來就比較麻煩。  

服務端接收到客戶端傳送的檔名,並把檔案的內容返回給客戶端

public class ScoketService {public static void server() {System.out.println("-------------服務已啟動-------------");ServerSocket serverSocket = null;try {server

PHP之郵件傳送(126郵箱PHPMailer開源)

一.首先下載PHPMailer https://github.com/chenlian2015/phpmailer.git 二.將下載所得目錄中的 class.phpmailer.php class.smtp.php 兩個檔案拷貝到你的工程目錄下 三.使用 <?p

Java 基於JavaMail實現向QQ郵箱傳送郵件

需求 最近專案在做新聞爬蟲,想實現這個功能:爬蟲某個頁面失敗後,把這個頁面的 url 發到筆者的郵箱。最終實現的效果圖如下,後期可以加上過濾標籤、失敗狀態碼等,方便分類搜尋異常。 開發人員可以根據郵件裡的 url 和堆疊資訊,分析爬蟲失敗的原因。 是

java項目java-web項目中文和文夾的含義

項目發布 右鍵 ldp classpath nbsp style cnblogs 源代碼 font 1. java項目   .project:是工程構建配置文件   .classpath:保存的是項目所用的外部引用包的路徑   .settings:記錄項目配置變化的記錄文

Java數據存入文讀取文

讀取 節點流 bsp iou iter bject 應該 tput 使用   在Java程序開發過程中我們發現並不能夠讓程序多次運行時獲得上一次關閉程序前的運行結果——我們沒有將運行的結果加以保存。這個時候我們就要找到Java操作讀取數據的方法(以操作文件為例):Java中

Java中IO流文讀取、寫入復制

復制 循環 int files catch class close brush system //構造文件File類 File f=new File(fileName); //判斷是否為目錄 f.isDirectory(); //獲取目錄下的文件名 String[] fil

Java學習記錄(補充八:Date類;Java流(Stream),文(File)IO)

tac hang set .get com 文件 pac 抽象類 格式化 Date類,Calendar類package Box1; import java.text.ParseException; import java.text.SimpleDateFormat; i

Exchange Server 2016管理系列課21.開啟郵箱郵件提示功能

water out 服務器 change blog 發送郵件 輸入提示 ext 服務 服務器上配置用戶的單個用戶的郵件提示功能 在用戶郵箱的屬性裏面,找到【郵件提示】,然後在右側的編輯窗格輸入提示的文本。 outlook客戶端上進行驗證 當我們給配置了郵件提示的郵箱發送郵件

intellij自動生成java代碼註釋(java註釋方法註釋)

edi 按鈕 intellij 說明 中新 user img fin fontsize 1定義java文件頭部的註釋 2給java類中的方法添加上註釋 2.1第一步勾選Enable Live Templates 2.2第二步新建一個Group

Java 讀取指定目錄下的文目錄名

ring filename tor pan nbsp system comm sys string 需求:讀取指定目錄下的文件名和目錄名 實現如下: 1 package com.test.common.util; 2 3 import java.io.File;

JavaMail讀取箱退信郵件/分析郵件附件獲取Message_Id

isp ngxin 自定義 work pro nec tst aging 任務 需求描述:公司最近有個項目郵件通知功能,但是客戶上傳的郵件地址並不一定存在,以及其他的各種問題。所有希望發送通知後有個回執,及時發現地址存在問題的郵箱。 需求分析:經過分析JavaMail可以讀

java後端導入excel模板導入excel文去讀數據

agent xlsx type pos excel文件 從數據 url ring shee 模板轉載地址:https://www.cnblogs.com/zhangyangtao/p/9802948.html 直接上代碼(我是基於ssm寫的demo,導入文件目前只能讀取.x

獲取郵箱驗證碼倒計時+PHP傳送QQ郵件(未全)

程式碼: <?php/*傳送郵件方法*@param $to:接收者 $title:標題 $content:郵件內容*@return bool true:傳送成功 false:傳送失敗*/function sendMail($to,$title,$content) { // 這個PHPMailer