程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於java運用JavaMail發送郵件

基於java運用JavaMail發送郵件

編輯:關於JAVA

基於java運用JavaMail發送郵件。本站提示廣大學習愛好者:(基於java運用JavaMail發送郵件)文章只能為提供參考,不一定能成為您想要的結果。以下是基於java運用JavaMail發送郵件正文


一、郵件的相關概念

郵件協議。次要包括:

SMTP協議:Simple Mail Transfer Protocol,即復雜郵件傳輸協議,用於發送電子郵件

POP3協議:Post Office Protocol 3,即郵局協議的第三個版本,用於接納郵件

IMAP協議:Internet Message Access Protocol,即互聯網音訊訪問協議,是POP3的替代協議

--------------------------------------------------------------------------------

 二、搭建James郵件服務器

 James是Apache的一個開源項目,純Java完成

 搭建James服務器

 ① 下載apache-james-2.3.2.zip解壓

 ② 運轉bin目錄下的run.bat即可啟動服務器[Telnet  localhost 4555]

 ③ 經過apps\james\SAR-INF\config.xml配置服務器

 注:先到bin下run一道。 放如非中文目錄, 得再控制面板開啟Telnet客戶端

--------------------------------------------------------------------------------

 三、裝置OutLook[郵件客戶端]

產品秘鑰:PQDV9-GPDV4-CRM4D-PHDTH-4M2MT

創立用戶賬號

一、運用telnet銜接James的Remote Administration Tool

二、以管理員身份登錄

三、運用adduser命令添加用戶

--------------------------------------------------------------------------------

四、配置outlook郵件客戶端

為了方便檢查,可以配置Microsoft Outlook郵件客戶端,保證James郵件服務器是啟動形態,啟動Microsoft Outlook.

選擇“工具”->“選項”,翻開“選項”面板。選擇“郵件設置”並點擊“電子郵件賬戶”,翻開“賬號設置”面板。在“電子郵件”選項卡下新建郵件賬戶

--------------------------------------------------------------------------------

五、案例[搭建James郵件服務器]

需求闡明:

在本機搭建James郵件服務器,自定義服務器的稱號。

創立兩個測試用戶。

在Microsoft Outlook中配置其中一個測試用戶為Outlook郵件賬戶

--------------------------------------------------------------------------------

 六、運用JavaMail發送電子郵件(案例)

 需求:

運用JavaMail技術,完成從A賬戶給B賬戶發送一封電子郵件,標題為“會議告訴”,郵件內容為“XX你好!請於今天下午16:00 准時到B01會議室召開技術討論會。”經過Outlook 客戶端檢查郵件順序發送的郵件能否發送成功

關鍵代碼:

創立一個類EmailAuthenticator並承繼自Authenticator,並植入用戶名和密碼

 創立Mail類設置郵件信息:

public class Mail {

 private String mailServer,from,to,mailSubject,mailContent;

 private String username,password;

 public Mail(){

   //設置郵件信息

   //停止認證登錄的用戶名

   username="[email protected]";

   //認證密碼

   password="hq";

   //認證的郵箱對應的郵件服務器

   mailServer="192.168.17.176";

   //發件人信息

   from="wj";

   //收件人信息

   to="[email protected]";

   //郵件標題

   mailSubject="我們都是好孩子333";

   //郵件內容

   mailContent="這是一封測試郵件!如有相同,純屬不能夠";

 }

 //設置郵件服務器

 @SuppressWarnings("static-access")

public void send(){

   Properties prop=System.getProperties();

   //指定郵件server

   prop.put("mail.smtp.host", mailServer);

    

   //能否開啟認證

   prop.put("mail.smtp.auth", "true");

    

   //smtp協議的

   prop.put("mail.smtp.port", "25");

   //發生Session服務

   EmailAuthenticator mailauth=new EmailAuthenticator(username, password);

   Session mailSession=Session.getInstance(prop,(Authenticator)mailauth);

    try {

      //封裝Message對象

      Message message=new MimeMessage(mailSession);

      

      message.setFrom(new InternetAddress(from)); //發件人

      message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));//收件人

      message.setSubject(mailSubject);

      //設置內容(設置字符集處置亂碼問題)

      message.setContent(mailContent,"text/html;charset=gbk");

      message.setSentDate(new Date());

      //創立Transport實例,發送郵件

      Transport tran=mailSession.getTransport("smtp");

      tran.send(message,message.getAllRecipients());

      tran.close();

      

    } catch (Exception e) {

      e.printStackTrace();

    }

 } 

測試類:  

public class MyTest {

  public static void main(String[] args) {

    Mail mail=new Mail();

    mail.send();

    System.out.println("success!");

  }
} 

--------------------------------------------------------------------------------

七、發送帶附件的Mail

public class MailWithAttachment {

  private JavaMailSender mailSender; //必需運用 JavaMailSender

  public void setMailSender(JavaMailSender mailSender) {

    this.mailSender = mailSender;

  }

   

  public void send() throws MessagingException,IOException{

    MimeMessage mimeMessage = mailSender.createMimeMessage();

    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

    helper.setFrom("[email protected]");

    helper.setTo("[email protected]");

     

    helper.setSubject("哈哈哈");

    helper.setText("每日一笑,開開心心!!!");

    //添加附件1

    ClassPathResource file1 = new ClassPathResource(

                    "/cn/bdqn/attachfiles/test.doc");

    helper.addAttachment(file1.getFilename(), file1.getFile());

    //添加附件2:附件的文件名為中文時,需求對文件名停止編碼轉換,處理亂碼問題

    ClassPathResource file2 = new ClassPathResource(

                    "/cn/bdqn/attachfiles/附件測試文件.doc");

    helper.addAttachment(MimeUtility.encodeWord(file2.getFilename()),file2.getFile());

    mailSender.send(mimeMessage);

  }

} 

測試類:  

public class MailTest {

  public static void main(String[] args){

    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

     

    /*測試帶附件的郵件*/

    try{

      MailWithAttachment mailWithAttach = (MailWithAttachment)context.getBean("mailWithAttachment");

      mailWithAttach.send();

    }catch(Exception e){

      System.out.print(e.toString());

    }

  }

}  

applicationContext.xml:大配置  

 

 以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved