Java蜘蛛人 歡迎大家

          歡迎大家 來到我的blog , 如果我身邊的朋友 有什么不懂可以直接來問我 我會(huì)細(xì)心的幫助你的. 如果網(wǎng)絡(luò)上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
          posts - 54, comments - 192, trackbacks - 0, articles - 1

                Spring整合javamail成功之后,把大量的代碼配置到spring的配置文件里了,從而降低了Javamail對(duì)郵箱、端口、協(xié)議、主題、內(nèi)容…… 的耦合。在客戶端上只需要調(diào)用一行代碼就可以發(fā)送郵件了。

              首先不需要往項(xiàng)目的lib里導(dǎo)入jar,但是需要在tomcatlib里導(dǎo)入3個(gè)jar文件activation.jar jspsmartupload.jarmail.jar 導(dǎo)入這3個(gè)jar文件,這樣tomcat就不會(huì)報(bào)錯(cuò)了。


           SendManagerService .java

          package com.cgt.itspiderman.service.email;

          public interface SendManagerService {
              
          public void sendMail(String email); 
          }
           定義一個(gè)發(fā)送郵件的接口.


          SendManagerServiceImp.java
          package com.cgt.itspiderman.service.email;

          import javax.mail.Message;
          import javax.mail.internet.InternetAddress;
          import javax.mail.internet.MimeMessage;

          import org.springframework.mail.SimpleMailMessage;
          import org.springframework.mail.javamail.JavaMailSender;
          import org.springframework.mail.javamail.MimeMessagePreparator;

          public class SendManagerServiceImp implements SendManagerService {

              
          private JavaMailSender mailSender;
              
              
          private SimpleMailMessage message;
                  
              
          public void sendMail(final String email) {
                  
          // TODO Auto-generated method stub
                  
                  MimeMessagePreparator preparator 
          = new MimeMessagePreparator()
                  {
                      
          public void prepare(MimeMessage mimeMessage) throws Exception {
                          
                          mimeMessage.setRecipient(Message.RecipientType.TO, 
          new InternetAddress(email));
                          mimeMessage.setFrom(
          new InternetAddress(message.getFrom()));
                          mimeMessage.setSubject(message.getSubject(),
          "gbk");
                          mimeMessage.setText(message.getText(),
          "gbk");
                      }
                  };
                  mailSender.send(preparator);
              
              }
              
              
          public JavaMailSender getMailSender() {
                  
          return mailSender;
              }

              
          public void setMailSender(JavaMailSender mailSender) {
                  
          this.mailSender = mailSender;
              }

              
          public SimpleMailMessage getMessage() {
                  
          return message;
              }

              
          public void setMessage(SimpleMailMessage message) {
                  
          this.message = message;
              }

          }
          發(fā)送郵件的實(shí)現(xiàn)類.

           然后在WEB-INF下面創(chuàng)建一個(gè)文件messages.properties    以后修改配置信息直接在這里修改就可以了。
          host=smtp.gmail.com
          username
          =zhengchengqiaobusiness@gmail.com
          password
          =xxxxxx
          port
          =465
          mail.smtp.auth
          =true
          mail.smtp.timeout
          =25000
          mail.smtp.starttls.enable
          =true
          mail.smtp.socketFactory.
          class=javax.net.ssl.SSLSocketFactory
          mail.smtp.socketFactory.fallback
          =false
          from
          =zhengchengqiaobusiness@gmail.com
          subject
          =\u6807\u9898
          text
          =\u5185\u5BB9\u554A

          applicationContext.xml
            .......................

          <
          bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                
          <property name="locations">
                  
          <list>
                     
          <value>WEB-INF/mail.properties</value>
                  
          </list> 
                
          </property> 
              
          </bean>

              
          <!-- gmail 發(fā)送郵箱的配置文件 -->
                 
          <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
                     
          <property name="host">
                         
          <value>${host}</value>
                     
          </property>       
                     
          <property name="username">
                         
          <value>${username}</value>
                     
          </property>
                     
          <property name="password">
                         
          <value>${password}</value>
                     
          </property>
                     
          <property name="port">
                         
          <value>${port}</value>
                     
          </property>
                     
          <property name="javaMailProperties">
                         
          <props>
                             
          <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                             
          <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
                             
          <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
                             
          <prop key="mail.smtp.socketFactory.class">${mail.smtp.socketFactory.class}</prop>
                             
          <prop key="mail.smtp.socketFactory.fallback">${mail.smtp.socketFactory.fallback}</prop> 
                         
          </props>
                     
          </property>
                 
          </bean>
                 
          <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
                     
          <property name="from">
                         
          <value>${from}</value>
                     
          </property>
                     
          <property name="subject">
                         
          <value>${subject}</value>
                     
          </property>
                     
          <property name="text">
                         
          <value>${text}</value>
                     
          </property>
                 
          </bean>
                 
          <bean id="sendmail" class="com.cgt.itspiderman.service.email.SendManagerServiceImp">
                     
          <property name="mailSender" ref="mailSender"></property>
                     
          <property name="message" ref="mailMessage"></property>
                 
          </bean>
                 
          <!-- end --> 

          ............................


          public static void main(String[] args) {
                  
                  ApplicationContext context
          = null;
                  context 
          = new ClassPathXmlApplicationContext("applicationContext.xml");
                  SendManagerService sms
          =    (SendManagerService)context.getBean("sendmail");
                  sms.sendMail(
          "zhengchengqiaobusiness@gmail.com");
              }


           如果是在struts2里使用的話需要在Action里加上private SendManagerService sendemail;(加上get和set),然后在spring里配置這個(gè)Action的時(shí)候加上<property name="sendemail" ref="sendmail"></property>
          然后在Action里調(diào)用下面這一行代碼就可以發(fā)送了。
          sendemail.sendMail("zhengchengqiaobusiness@gmail.com");
            寫到這里大家會(huì)問,如果需要?jiǎng)討B(tài)的修改這個(gè)郵件的內(nèi)容呢?方法很簡單
               
            WebApplicationContext context=WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());
                  ((SimpleMailMessage) context.getBean(
          "mailMessage")).setText("我現(xiàn)在修改了郵件的內(nèi)容 呵呵呵");

          Feedback

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-04-23 11:45 by Java蜘蛛人 --鄭成橋
          大家有問題就問我

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-04-23 13:15 by 杰德。張
          鄭老師,最好能講一講關(guān)于webservice的uddi服務(wù)器的建立、發(fā)布等方面的知識(shí)!!

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-04-23 14:13 by Java蜘蛛人 --鄭成橋
          好的 我過段時(shí)間會(huì)搞個(gè)投票的東西 然大家來投 。 票數(shù)最多 我就講。

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-05-07 12:33 by 杰德。張
          鄭大哥,你的freemaker視頻不能下載了,能不能在給我提供一個(gè)下載地址,謝謝!!!非常想學(xué)習(xí)學(xué)習(xí)!!!
          zhangjin_2006@126.com

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-05-07 14:04 by Java蜘蛛人 --鄭成橋
          我不是發(fā)到你的郵箱里去了嗎?

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-06-06 22:48 by zjsjava
          你這個(gè)確定現(xiàn)在能用GMAIL發(fā)嗎?

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-08-12 14:14 by 過路人
          非常不錯(cuò),頂

          # re: Spring 整合javamail 用 gmail 發(fā)送郵件  回復(fù)  更多評(píng)論   

          2009-08-17 14:28 by 咖啡@可樂
          今天來學(xué)習(xí)哈!

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 化州市| 平南县| 延庆县| 肃南| 肇源县| 巴塘县| 昌吉市| 合水县| 兴海县| 西贡区| 吐鲁番市| 米泉市| 玉溪市| 慈利县| 林州市| 梨树县| 芮城县| 哈巴河县| 昭通市| 乐业县| 屯门区| 商水县| 乌拉特中旗| 阿拉尔市| 凤山县| 藁城市| 甘南县| 资兴市| 城口县| 独山县| 手游| 永济市| 友谊县| 平遥县| 彩票| 哈密市| 安岳县| 清丰县| 江源县| 乌什县| 广水市|