posts - 75,comments - 83,trackbacks - 0

          Spring郵件抽象層的主要包為org.springframework.mail。它包括了發(fā)送電子郵件的主要接口MailSender,和值對象SimpleMailMessage,它封裝了簡單郵件的屬性如from, to,cc, subject,text。 包里還包含一棵以MailException為根的checked Exception繼承樹,它們提供了對底層郵件系統(tǒng)異常的高級別抽象。 要獲得關(guān)于郵件異常層次的更豐富的信息,請參考Javadocs。

          為了使用JavaMail中的一些特色, 比如MIME類型的信件, Spring提供了MailSender的一個子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring還提供了一個回調(diào)接口org.springframework.mail.javamail.MimeMessagePreparator, 用于準(zhǔn)備JavaMail的MIME信件。

          1.發(fā)送簡單的文本郵件

          package ?net.xftzr.mail;
          import ?java.util.Properties;

          import ?org.springframework.mail.SimpleMailMessage;?
          import ?org.springframework.mail.javamail.JavaMailSenderImpl;?

          /**
          ?*?本類測試簡單郵件?
          ?*?直接用郵件發(fā)送
          ?*?
          @author ?Administrator
          ?*
          ?
          */
          public ? class ?SingleMailSend?{?
          ??
          public ? static ? void ?main(String?args[]){?
          ????JavaMailSenderImpl?senderImpl?
          = ? new ?JavaMailSenderImpl();?
          ??
          // 設(shè)定mail?server?
          ????senderImpl.setHost( " smtp.163.com " );
          ?????
          ????
          // 建立郵件消息?
          ????SimpleMailMessage?mailMessage? = ? new ?SimpleMailMessage();?
          ????
          // 設(shè)置收件人,寄件人?用數(shù)組發(fā)送多個郵件
          ????
          // String[]?array?=?new?String[]????{"sun111@163.com","sun222@sohu.com"};????
          ????
          // mailMessage.setTo(array);?
          ????mailMessage.setTo( " toEmail@sina.com " );?
          ????mailMessage.setFrom(
          " userName@163.com " );?
          ????mailMessage.setSubject(
          " 測試簡單文本郵件發(fā)送! " );?
          ????mailMessage.setText(
          " 測試我的簡單郵件發(fā)送機(jī)制!! " );?
          ????
          ????senderImpl.setUsername(
          " userName " )?;? // ?根據(jù)自己的情況,設(shè)置username
          ????senderImpl.setPassword( " password " )?;? // ?根據(jù)自己的情況,?設(shè)置password
          ????
          ?Properties?prop?
          = ? new ?Properties()?;
          ?prop.put(
          " mail.smtp.auth " ,? " true " )?;? // ?將這個參數(shù)設(shè)為true,讓服務(wù)器進(jìn)行認(rèn)證,認(rèn)證用戶名和密碼是否正確
          ?prop.put( " mail.smtp.timeout " ,? " 25000 " )?;?
          ?senderImpl.setJavaMailProperties(prop);??
          ????
          // 發(fā)送郵件?
          ????senderImpl.send(mailMessage);?
          ?????
          ????System.out.println(
          " 郵件發(fā)送成功.. " );?
          ?????}?
          ??}?

          2.發(fā)送簡單的html郵件

          org.springframework.mail.javamail.MimeMessageHelper是處理JavaMail郵件常用的順手組件之一。它可以讓你擺脫繁復(fù)的javax.mail.internetAPI類
          package?net.xftzr.mail;


          import?java.util.Properties;

          import?javax.mail.internet.MimeMessage;?
          import?org.springframework.mail.javamail.JavaMailSenderImpl;?
          import?org.springframework.mail.javamail.MimeMessageHelper;?
          /**?
          ?*?本類測試html郵件?
          ?*?
          @author?sunny?
          ?*?
          ?
          */?
          public?class?HTMLMailDemo?{?
          /**?
          *?
          @param?args?
          */?
          public?static?void?main(String[]?args)?throws?Exception{?
          ????JavaMailSenderImpl?senderImpl?
          =?new?JavaMailSenderImpl();?
          ????
          ????
          //設(shè)定mail?server?
          ????senderImpl.setHost("smtp.163.com");?
          ????
          ????
          //建立郵件消息,發(fā)送簡單郵件和html郵件的區(qū)別?
          ????MimeMessage?mailMessage?=?senderImpl.createMimeMessage();?
          ????MimeMessageHelper?messageHelper?
          =?new?MimeMessageHelper(mailMessage);?
          ?????????????
          ????
          //設(shè)置收件人,寄件人?
          ????messageHelper.setTo("Mailto@sina.com");?
          ????messageHelper.setFrom(
          "username@163.com");?
          ????messageHelper.setSubject(
          "測試HTML郵件!");?
          ????
          //true?表示啟動HTML格式的郵件?
          ????messageHelper.setText("<html><head></head><body><h1>hello!!spring?html?Mail</h1></body></html>",true);?
          ????
          ????senderImpl.setUsername(
          "username")?;?//?根據(jù)自己的情況,設(shè)置username
          ????senderImpl.setPassword("password")?;?//?根據(jù)自己的情況,?設(shè)置password
          ????Properties?prop?=?new?Properties()?;
          ????prop.put(
          "mail.smtp.auth",?"true")?;?//?將這個參數(shù)設(shè)為true,讓服務(wù)器進(jìn)行認(rèn)證,認(rèn)證用戶名和密碼是否正確
          ????prop.put("mail.smtp.timeout",?"25000")?;?
          ????senderImpl.setJavaMailProperties(prop);?
          ????
          //發(fā)送郵件?
          ????senderImpl.send(mailMessage);?
          ????
          ????System.out.println(
          "郵件發(fā)送成功..");?
          }?
          }?

          3.發(fā)送嵌套圖片的郵件


          Email允許添加附件,也允許在multipart信件中內(nèi)嵌資源。內(nèi)嵌資源可能是你在信件中希望使用的圖像,或者樣式表,但是又不想把它們作為附件。
          package?net.xftzr.mail;

          import?java.io.File;?
          import?java.util.Properties;

          import?javax.mail.internet.MimeMessage;?
          import?org.springframework.core.io.FileSystemResource;?
          import?org.springframework.mail.javamail.JavaMailSenderImpl;?
          import?org.springframework.mail.javamail.MimeMessageHelper;?
          /**?
          ?*?本類測試郵件中嵌套圖片?
          ?*?
          @author?sunny????
          ?*?
          ?
          */?
          public?class?AttachedImageMail?{?
          public?static?void?main(String[]?args)?throws?Exception{?
          ????JavaMailSenderImpl?senderImpl?
          =?new?JavaMailSenderImpl();?
          ????
          ????
          //設(shè)定mail?server?
          ????senderImpl.setHost("smtp.163.com");?

          ????
          //建立郵件消息,發(fā)送簡單郵件和html郵件的區(qū)別?
          ????MimeMessage?mailMessage?=?senderImpl.createMimeMessage();?
          ????
          //注意這里的boolean,等于真的時候才能嵌套圖片,在構(gòu)建MimeMessageHelper時候,所給定的值是true表示啟用,?????????
          ????
          //multipart模式?
          ????MimeMessageHelper?messageHelper?=?new?MimeMessageHelper(mailMessage,true);?
          ????
          ????
          //設(shè)置收件人,寄件人?
          ????messageHelper.setTo("toMail@sina.com");?
          ????messageHelper.setFrom(
          "username@163.com");?
          ????messageHelper.setSubject(
          "測試郵件中嵌套圖片!!");?
          ????
          //true?表示啟動HTML格式的郵件?
          ????messageHelper.setText("<html><head></head><body><h1>hello!!spring?image?html?mail</h1>"?+?
          ????
          "<img?src=\"cid:aaa\"/></body></html>",true);?
          ????????
          ????FileSystemResource?img?
          =?new?FileSystemResource(new?File("g:/123.jpg"));?
          ????
          ????messageHelper.addInline(
          "aaa",img);?
          ????
          ????senderImpl.setUsername(
          "username")?;?//?根據(jù)自己的情況,設(shè)置username
          ????senderImpl.setPassword("password")?;?//?根據(jù)自己的情況,?設(shè)置password
          ????Properties?prop?=?new?Properties()?;
          ????prop.put(
          "mail.smtp.auth",?"true")?;?//?將這個參數(shù)設(shè)為true,讓服務(wù)器進(jìn)行認(rèn)證,認(rèn)證用戶名和密碼是否正確
          ????prop.put("mail.smtp.timeout",?"25000")?;?
          ????senderImpl.setJavaMailProperties(prop);?
          ????
          ????
          //發(fā)送郵件?
          ????senderImpl.send(mailMessage);?
          ????
          ????System.out.println(
          "郵件發(fā)送成功..");?
          }?
          }?

          4.發(fā)送包含附件的郵件
          package?net.xftzr.mail;



          import?java.io.File;?
          import?java.util.Properties;

          import?javax.mail.internet.MimeMessage;?
          import?org.springframework.core.io.FileSystemResource;?
          import?org.springframework.mail.javamail.JavaMailSenderImpl;?
          import?org.springframework.mail?.javamail.MimeMessageHelper;?
          public?class?AttachedFileMail?{?
          /**?
          *?本類測試的是關(guān)于郵件中帶有附件的例子?
          *?
          @param?args?
          */
          ?
          public?static?void?main(String[]?args)?throws?Exception{?
          ????JavaMailSenderImpl?senderImpl?
          =?new?JavaMailSenderImpl();?
          ????
          ????
          //設(shè)定mail?server?
          ????senderImpl.setHost("smtp.163.com");?
          ????
          //建立郵件消息,發(fā)送簡單郵件和html郵件的區(qū)別?
          ????MimeMessage?mailMessage?=?senderImpl.createMimeMessage();?
          ????
          //注意這里的boolean,等于真的時候才能嵌套圖片,在構(gòu)建MimeMessageHelper時候,所給定的值是true表示啟用,?????????
          ????
          //multipart模式?為true時發(fā)送附件?可以設(shè)置html格式
          ????MimeMessageHelper?messageHelper?=?new?MimeMessageHelper(mailMessage,true,"utf-8");?
          ????
          ????
          //設(shè)置收件人,寄件人?
          ????messageHelper.setTo("toMail@sina.com");????
          ????messageHelper.setFrom(
          "username@163.com");?
          ????messageHelper.setSubject(
          "測試郵件中上傳附件!!");?
          ????
          //true?表示啟動HTML格式的郵件?
          ????messageHelper.setText("<html><head></head><body><h1>你好:附件中有學(xué)習(xí)資料!</h1></body></html>",true);?
          ????????
          ????FileSystemResource?file?
          =?new?FileSystemResource(new?File("g:/test.rar"));?
          ????
          //這里的方法調(diào)用和插入圖片是不同的。?
          ????messageHelper.addAttachment("test.rar",file);?
          ????
          ????senderImpl.setUsername(
          "username")?;?//?根據(jù)自己的情況,設(shè)置username
          ????senderImpl.setPassword("password")?;?//?根據(jù)自己的情況,?設(shè)置password
          ????Properties?prop?=?new?Properties()?;
          ????prop.put(
          "mail.smtp.auth",?"true")?;?//?將這個參數(shù)設(shè)為true,讓服務(wù)器進(jìn)行認(rèn)證,認(rèn)證用戶名和密碼是否正確
          ????prop.put("mail.smtp.timeout",?"25000")?;?
          ????senderImpl.setJavaMailProperties(prop);?
          ????
          //發(fā)送郵件?
          ????senderImpl.send(mailMessage);?
          ????
          ????System.out.println(
          "郵件發(fā)送成功..");?
          }
          ?
          }






          posted on 2008-12-08 10:32 梓楓 閱讀(5899) 評論(3)  編輯  收藏 所屬分類: spring發(fā)送郵件

          FeedBack:
          # re: spring各種郵件發(fā)送
          2008-12-08 14:05 | 路人
          # re: spring各種郵件發(fā)送
          2014-12-23 15:38 | youngjoy
          如果希望得到服務(wù)器的返回信息怎么辦?  回復(fù)  更多評論
            
          # re: spring各種郵件發(fā)送[未登錄]
          2016-06-02 15:28 | 1

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 福贡县| 铜梁县| 靖江市| 石柱| 上林县| 井冈山市| 巴彦淖尔市| 来凤县| 睢宁县| 廉江市| 温泉县| 方山县| 潍坊市| 麻城市| 上犹县| 信阳市| 老河口市| 三亚市| 旬阳县| 峨眉山市| 屏山县| 潼南县| 邵武市| 南皮县| 当雄县| 盐城市| 潞西市| 宾川县| 定远县| 小金县| 江阴市| 射洪县| 丰县| 万宁市| 石柱| 卓资县| 绥化市| 汕尾市| 封开县| 布拖县| 潼南县|