<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-153  評論-235  文章-19  trackbacks-0
        由于項目里要發郵件,用了spring 和 velocity 模板。寫下來以后可以看,好記性不如博客。
    版本說明下:
    spring 2.0.6
    velocity 1.5
    javamail 用 spring/lib下的

    1.封裝郵件信息類:
    package com.chenlb.mail;

    import java.util.Map;

    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.velocity.app.VelocityEngine;
    import org.springframework.mail.MailException;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import org.springframework.ui.velocity.VelocityEngineUtils;

    /**
     * 郵件發送器
     * @作者 chenlb
     * @創建時間 2007-7-28 下午03:35:31 
     
    */
    public class VelocityTemplateMailMessage {

        
    protected final Log logger = LogFactory.getLog(getClass());
        
        
    private JavaMailSender javaMailSender;
        
    private VelocityEngine velocityEngine;
        
    private String from;
        
    private String title;
        
    private String encoding;
        
    private String templateLocation;
        
    private String[] toEmails;
        
    private Map model;


        
    public boolean send() {
            MimeMessage msg 
    = javaMailSender.createMimeMessage();
            MimeMessageHelper helper 
    = new MimeMessageHelper(msg);
            
            
    try {
                helper.setFrom(from);
                helper.setSubject(title);
                helper.setTo(toEmails);
                helper.setText(getMessage(), 
    true);   //如果發的不是html內容去掉true參數
                javaMailSender.send(msg);
                
            } 
    catch (MessagingException e) {
                
    // TODO 自動生成 catch 塊
                if(logger.isWarnEnabled()) {
                    logger.warn(
    "郵件信息導常! 郵件標題為: "+title);
                }
                
    return false;
                
    //e.printStackTrace();
            } catch (MailException me) {
                
    // TODO: handle exception
                if(logger.isWarnEnabled()) {
                    logger.warn(
    "發送郵件失敗! 郵件標題為: "+title);
                }
                
    return false;
            }
            
    return true;    
        }
        
        
        
    /**
         * 郵件模板中得到信息
         * 
    @return 返回特發送的內容
         
    */
        
    private String getMessage() {
            
    return VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, 
                    templateLocation, encoding, model);
        }

        
    private String[] createToEmail(String to) {
            
    return new String[] {to};
        }
        
        
    public void setToEmail(String to) {
            setToEmails(createToEmail(to));
        }
        
        
    public void setJavaMailSender(JavaMailSender javaMailSender) {
            
    this.javaMailSender = javaMailSender;
        }
        
        
    public void setVelocityEngine(VelocityEngine velocityEngine) {
            
    this.velocityEngine = velocityEngine;
        }

        
    public void setEncoding(String encoding) {
            
    this.encoding = encoding;
        }

        
    public void setModel(Map model) {
            
    this.model = model;
        }

        
    public void setTemplateLocation(String templateLocation) {
            
    this.templateLocation = templateLocation;
        }

        
    public void setTitle(String title) {
            
    this.title = title;
        }

        
    public void setToEmails(String[] toEmails) {
            
    this.toEmails = toEmails;
        }

        
    public void setFrom(String from) {
            
    this.from = from;
        }

        
    public String getTemplateLocation() {
            
    return templateLocation;
        }
    }

    2.spring配置文件,applictionContext-mail.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
            "dtd/spring-beans-2.0.dtd"
    >
    <!-- http://www.springframework.org/ -->
    <beans>

    <!-- 屬性文件加載 -->
        
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            
    <property name="locations">
              
    <list>
                  
    <value>classpath:mail.properties</value>
              
    </list>
          
    </property>
        
    </bean>

    <!-- 郵件發送器 -->
        
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            
    <property name="host" value="${mail.host}" />
            
    <property name="username" value="${mail.username}" />
            
    <property name="password" value="${mail.password}" />
            
    <property name="defaultEncoding" value="UTF-8"></property>
            
    <property name="javaMailProperties">
                
    <props>
                    
    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                    
    <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
                
    </props>
            
    </property>
        
    </bean>
        
        
    <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
            
    <property name="resourceLoaderPath" value="classpath:velocity"></property>
        
    </bean>
        
        
    <bean id="templateMail" class="com.chenlb.mail.VelocityTemplateMailMessage">
            
    <property name="javaMailSender" ref="mailSender"></property>
            
    <property name="from" value="${mail.from}"></property>
            
    <property name="encoding" value="UTF-8"></property>
            
    <property name="templateLocation" value="test.vm"></property>
            
    <property name="velocityEngine" ref="velocityEngine"></property>
            
    <property name="title" value="wwww.tkk7.com/chenlb"></property>
        
    </bean>
        
    </beans>
    說明:模板文件放到classpath的velocity目錄下,可自行改。

    3.發送者郵件信息,mail.properties(classpath位置):
    mail.from=yourname@126.com
    mail.host
    =smtp.126.com
    mail.password
    =yourpassword
    mail.smtp.auth
    =true
    mail.smtp.timeout
    =25000
    mail.username
    =yourname

    4.模板文件,text.vm(classpath的velocity目錄下):
    你好!${me} 這是模板生成的郵件。

    5.使用:
    VelocityTemplateMailMessage vtmm = (VelocityTemplateMailMessage) context.getBean("templateMail");
    Map
    <String, String> data = new HashMap<String, String>();
    data(
    "me","yourname");
    vtmm.setModel(data);
    vtmm.setToMail(
    "yourOtherMail@163.com");
    vtmm.setTitle(
    "mail with veloctiy and spring");
    vtmm.send();

     

    看下是否收到郵件了。^_^

    posted on 2007-08-21 19:43 流浪汗 閱讀(3330) 評論(6)  編輯  收藏 所屬分類: OpenSource

    評論:
    # re: send email with velocity and spring 完整示例[未登錄] 2007-11-16 20:41 | silent

    能夠完整打包發給我嗎..非常謝謝啊...  回復  更多評論
      
    # re: send email with velocity and spring 完整示例 2008-07-03 10:41 | andyjames
    學習了 多多指教  回復  更多評論
      
    # re: send email with velocity and spring 完整示例 2009-09-04 14:03 | Wangzi
    博主不厚道,不提供下載

    我的郵箱是yhjhoo@163.com,麻煩博主發我一份吧  回復  更多評論
      
    # re: send email with velocity and spring 完整示例 2009-09-20 13:47 | 豆漿包子
    非常感謝,正好需要。
    測試用Google郵箱發送失敗,換了QQ郵箱就成功了。  回復  更多評論
      
    # re: send email with velocity and spring 完整示例 2010-06-10 16:34 | dylan
    能給我也傳一份么?
    hpsh2006@163.com  回復  更多評論
      
    # re: send email with velocity and spring 完整示例 2010-12-27 12:56 | 杰杰
    @dylan
    1021938637@qq.com ^^謝發一下  回復  更多評論
      
    主站蜘蛛池模板: 91视频免费观看高清观看完整| 免费国产作爱视频网站| 亚洲大片在线观看| 在人线av无码免费高潮喷水| 国产亚洲Av综合人人澡精品| 亚洲AV日韩AV永久无码下载| 青草草在线视频永久免费| a级片在线免费看| 亚洲精品国产av成拍色拍| 91麻豆精品国产自产在线观看亚洲 | 伊在人亚洲香蕉精品区麻豆| 男女一边桶一边摸一边脱视频免费| 亚洲一区二区三区夜色| 国产zzjjzzjj视频全免费| 无码人妻一区二区三区免费看 | 久久亚洲精品成人| 午夜免费福利在线| 美女在线视频观看影院免费天天看| 亚洲欧洲日本在线观看| 亚洲国产精品无码久久SM| 日本二区免费一片黄2019| 午夜理伦剧场免费| eeuss影院免费92242部| 亚洲人成网站色7799| 亚洲一区二区三区夜色| 国产亚洲精品a在线观看| 好吊妞998视频免费观看在线| 国产激情免费视频在线观看 | 大香人蕉免费视频75| 精品一区二区三区无码免费视频| 污视频网站在线免费看| 麻豆狠色伊人亚洲综合网站| 国产精品亚洲精品日韩已满| 可以免费观看一级毛片黄a| 18禁网站免费无遮挡无码中文 | 18女人毛片水真多免费| 中国一级全黄的免费观看| 国产亚洲视频在线| 亚洲精品伊人久久久久| 777亚洲精品乱码久久久久久| 中文字幕精品亚洲无线码二区 |