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

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

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

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
    有時候當我們注冊完的時候系統會提示有一封郵件發送到了你的郵箱,如何做呢?
    就要用到spring+velocity+javamail這3個玩意,其實只用了spring,因為其他2個都被spring集成了。
    先看代碼
      1package com.worthtech.app.util;
      2
      3import java.io.File;
      4import java.util.Map;
      5
      6import javax.mail.MessagingException;
      7import javax.mail.internet.MimeMessage;
      8
      9import org.apache.velocity.app.VelocityEngine;
     10import org.springframework.core.io.FileSystemResource;
     11import org.springframework.mail.SimpleMailMessage;
     12import org.springframework.mail.javamail.JavaMailSender;
     13import org.springframework.mail.javamail.MimeMessageHelper;
     14import org.springframework.ui.velocity.VelocityEngineUtils;
     15
     16public class MailSenderService {
     17    private JavaMailSender mailSender;//spring配置中定義
     18    private VelocityEngine velocityEngine;//spring配置中定義
     19    private SimpleMailMessage simpleMailMessage;//spring配置中定義
     20    private String from;
     21    private String to;
     22    private String subject;
     23    private String content;
     24    private String templateName;
     25    // 是否需要身份驗證   
     26    private boolean validate = false
     27    
     28    
     29    public JavaMailSender getMailSender() {
     30        return mailSender;
     31    }

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

     35    public VelocityEngine getVelocityEngine() {
     36        return velocityEngine;
     37    }

     38    public void setVelocityEngine(VelocityEngine velocityEngine) {
     39        this.velocityEngine = velocityEngine;
     40    }

     41    /**
     42     * 發送模板郵件
     43     *
     44     */

     45    public void sendWithTemplate(Map model){
     46        mailSender = this.getMailSender();
     47        simpleMailMessage.setTo(this.getTo()); //接收人  
     48        simpleMailMessage.setFrom(simpleMailMessage.getFrom()); //發送人,從配置文件中取得
     49        simpleMailMessage.setSubject(this.getSubject());
     50        String result = null;
     51        try {
     52            result = VelocityEngineUtils.mergeTemplateIntoString(this.getVelocityEngine(), this.getTemplateName(), "UTF-8",model);
     53        }
     catch (Exception e) {}
     54        simpleMailMessage.setText(result);
     55        mailSender.send(simpleMailMessage);
     56    }

     57    /**
     58     * 發送普通文本郵件
     59     *
     60     */

     61    public void sendText(){
     62        mailSender = this.getMailSender();
     63        simpleMailMessage.setTo(this.getTo()); //接收人  
     64        simpleMailMessage.setFrom(simpleMailMessage.getFrom()); //發送人,從配置文件中取得
     65        simpleMailMessage.setSubject(this.getSubject());
     66        simpleMailMessage.setText(this.getContent());
     67        mailSender.send(simpleMailMessage);
     68    }

     69    /**
     70     * 發送普通Html郵件
     71     *
     72     */

     73    public void sendHtml(){
     74        mailSender = this.getMailSender();
     75        MimeMessage mimeMessage = mailSender.createMimeMessage();
     76        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
     77        try {
     78            messageHelper.setTo(this.getTo());
     79            messageHelper.setFrom(simpleMailMessage.getFrom());
     80            messageHelper.setSubject(this.getSubject());
     81            messageHelper.setText(this.getContent(),true);      
     82        }
     catch (MessagingException e) {
     83            // TODO Auto-generated catch block
     84            e.printStackTrace();
     85        }

     86        mailSender.send(mimeMessage);
     87    }

     88    /**
     89     * 發送普通帶一張圖片的Html郵件
     90     *
     91     */

     92    public void sendHtmlWithImage(String imagePath){
     93        mailSender = this.getMailSender();
     94        MimeMessage mimeMessage = mailSender.createMimeMessage();
     95        try {
     96            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);
     97            messageHelper.setTo(this.getTo());
     98            messageHelper.setFrom(simpleMailMessage.getFrom());
     99            messageHelper.setSubject(this.getSubject());
    100            messageHelper.setText(this.getContent(),true);
    101//            Content="<html><head></head><body><img src=\"cid:image\"/></body></html>";
    102            //圖片必須這樣子:<img src='cid:image'/>
    103            FileSystemResource img = new FileSystemResource(new File(imagePath));
    104            messageHelper.addInline("image",img);
    105        }
     catch (MessagingException e) {
    106            // TODO Auto-generated catch block
    107            e.printStackTrace();
    108        }

    109        mailSender.send(mimeMessage);
    110    }

    111    /**
    112     * 發送普通帶附件的Html郵件
    113     *
    114     */

    115    public void sendHtmlWithAttachment(String filePath){
    116        mailSender = this.getMailSender();
    117        MimeMessage mimeMessage = mailSender.createMimeMessage();
    118        try {
    119            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);
    120            messageHelper.setTo(this.getTo());
    121            messageHelper.setFrom(simpleMailMessage.getFrom());
    122            messageHelper.setSubject(this.getSubject());
    123            messageHelper.setText(this.getContent(),true);
    124            FileSystemResource file = new FileSystemResource(new File(filePath));
    125//            System.out.println("file.getFilename==="+file.getFilename());
    126            messageHelper.addAttachment(file.getFilename(),file);
    127        }
     catch (MessagingException e) {
    128            // TODO Auto-generated catch block
    129            e.printStackTrace();
    130        }

    131        mailSender.send(mimeMessage);
    132    }

    133    public String getFrom() {
    134        return from;
    135    }

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

    139    public String getSubject() {
    140        return subject;
    141    }

    142    public void setSubject(String subject) {
    143        this.subject = subject;
    144    }

    145    public String getTo() {
    146        return to;
    147    }

    148    public void setTo(String to) {
    149        this.to = to;
    150    }

    151    public String getTemplateName() {
    152        return templateName;
    153    }

    154    public void setTemplateName(String templateName) {
    155        this.templateName = templateName;
    156    }

    157    public String getContent() {
    158        return content;
    159    }

    160    public void setContent(String content) {
    161        this.content = content;
    162    }

    163    public boolean isValidate() {
    164        return validate;
    165    }

    166    public void setValidate(boolean validate) {
    167        this.validate = validate;
    168    }

    169    public SimpleMailMessage getSimpleMailMessage() {
    170        return simpleMailMessage;
    171    }

    172    public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
    173        this.simpleMailMessage = simpleMailMessage;
    174    }

    175}
    上面這個類實際上是個發送郵件的工具類,我們只要設置好參數后調用想要的sendXXX()就可以了。如下:

     1//注冊完馬上發送郵件
     2MailSenderService mailSender=this.getMailsenderService();
     3mailSender.setTo(form.getEmail());
     4mailSender.setSubject("來自worthtech的郵件");
     5mailSender.setTemplateName("mail.vm");//設置的郵件模板
     6Map model=new HashMap();
     7model.put("username", form.getUserName());
     8String url=request.getRequestURL().toString();
     9url=url.substring(0, url.lastIndexOf("/"));
    10model.put("url", url);
    11model.put("email""gjni@worthtech.net");
    12mailSender.sendWithTemplate(model);
    13System.out.println("郵件發送成功!");

    下面的是spring配置

     1<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
     2       <property name="host" value="${mail.host}"/>
     3       <property name="username" value="${mail.username}"/>
     4       <property name="password" value="${mail.password}"/>
     5        <property name="defaultEncoding" value="UTF-8"></property>
     6        <property name="javaMailProperties">
     7             <props>
     8                <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
     9                <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
    10                <!--
    11                <prop key="mail.smtp.starttls.enable">true</prop>
    12                <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    13                <prop key="mail.smtp.socketFactory.fallback">false</prop>
    14                -->
    15            </props>
    16        </property>
    17  </bean>
    18  <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage" singleton="false">
    19    <property name="from">
    20        <value>${mail.default.from}</value>
    21    </property>
    22  </bean>
    23  <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    24        <property name="velocityProperties">   
    25            <props>   
    26                <prop key="resource.loader">class</prop>   
    27                <prop key="class.resource.loader.class">   
    28                    org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader   
    29                </prop>   
    30                <prop key="velocimacro.library"></prop>   
    31            </props>   
    32        </property>   
    33   </bean>
    34    <bean id="mailsenderService" class="com.worthtech.app.util.MailSenderService">  
    35          <property name="mailSender" ref="mailSender" />
    36          <property name="simpleMailMessage" ref="simpleMailMessage" />
    37          <property name="velocityEngine" ref="velocityEngine" />
    38    </bean>

    mail.vm內容如下:
     1親愛的${username}
     2
     3歡迎加入worthtech! 
     4
     5當您收到這封信的時候,您已經可以正常登錄了。
     6請點擊鏈接登錄首頁:${url}
     7如果您的email程序不支持鏈接點擊,請將上面的地址拷貝至您的瀏覽器(如IE)的地址欄進入。
     8
     9如果您還想申請管理員權限,可以聯系管理員${email}
    10
    11我們對您產生的不便,深表歉意。
    12
    13希望您在worthtech度過快樂的時光!
    14    
    15-----------------------
    16     
    17(這是一封自動產生的email,請勿回復。)

    mail.properties如下:
    1mail.host=218.000.000.234
    2mail.port=25
    3mail.username=gjni@worthtech.net
    4mail.password=xxxxxxxx
    5mail.smtp.auth=true
    6mail.smtp.timeout=25000
    7mail.default.from=gjni@worthtech.net

    posted on 2013-08-29 10:19 rogerfan 閱讀(3048) 評論(3)  編輯  收藏 所屬分類: 【Java知識】

    Feedback

    # re: 【轉】spring+velocity+javamail發送模板郵件 2014-07-29 09:13 我都
    地區穩定穩定  回復  更多評論
      

    # re: 【轉】spring+velocity+javamail發送模板郵件 2014-09-13 15:56 鄧宏恒
    SFDSF  回復  更多評論
      

    # re: 【轉】spring+velocity+javamail發送模板郵件 2014-09-26 10:32 心愿
    寫的挺不錯的!!對Spring框架了解的比較少。學習中  回復  更多評論
      

    主站蜘蛛池模板: 中文在线免费看视频| 亚洲不卡av不卡一区二区| 120秒男女动态视频免费| 国产啪精品视频网免费| 久久久久亚洲AV无码网站| 啊v在线免费观看| 99麻豆久久久国产精品免费 | 亚洲五月午夜免费在线视频| 亚洲综合一区国产精品| 麻豆亚洲AV永久无码精品久久| 亚洲无线码一区二区三区| 亚洲国产成人久久笫一页| 女人与禽交视频免费看| 一区二区三区免费视频观看| 男人的天堂av亚洲一区2区| 亚洲色偷偷综合亚洲AVYP| 国产成人免费片在线观看| 精品一卡2卡三卡4卡免费视频| 美女一级毛片免费观看| 亚洲欧美日本韩国| 亚洲av无码国产精品夜色午夜| 精品国产人成亚洲区| 在线观看无码AV网站永久免费| 最近的中文字幕大全免费8| 人妻无码久久一区二区三区免费 | 特级淫片国产免费高清视频| 在线观看免费人成视频色9| 99在线精品免费视频九九视| 在线免费观看亚洲| 91黑丝国产线观看免费| 嘿嘿嘿视频免费网站在线观看| 在线成人爽a毛片免费软件| 亚洲视频免费播放| 日韩欧毛片免费视频| 四虎永久在线精品免费网址 | 亚洲成a人无码亚洲成www牛牛 | 最近免费中文字幕大全视频| 色妞WWW精品免费视频| 日韩一级免费视频| 四虎亚洲国产成人久久精品 | a级毛片在线免费看|