• 1javaMail+spring


     1 <?xml  version="1.0" encoding="utf-8"?>
     2     <beans xmlns="http://www.springframework.org/schema/beans"  
     3            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     4            xmlns:aop="http://www.springframework.org/schema/aop"  
     5            xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
     6            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  
     7         <!-- 注意:这里的参数(如用户名、密码)都是针对邮件发送者的 -->  
     8         <bean id="mailSender"     class="org.springframework.mail.javamail.JavaMailSenderImpl">  
     9             <property name="defaultEncoding" value="UTF-8" />  
    10                 <!-- 
    11                        网易的SMTP服务器名和端口号:
    12                       网易邮箱          SMTP服务器     SMTP端口     POP3服务器       POP3端口
    13                        @126.com     smtp.126.com      25          pop3.126.com      110
    14                     @163.com     smtp.163.com      25          pop3.163.com      110
    15                     @yeah.net    smtp.yeah.net      25          pop3.yeah.net     110
    16                 -->       
    17             <property name="host" value="smtp.163.com"/>  
    18             <property name="port" value="25"/>
    19             <property name="username" value="basketball402@163.com"/>  
    20             <property name="password" value="xxl311XXLONG"/>  
    21             <property name="javaMailProperties">  
    22                 <props>  
    23                     <prop key="mail.smtp.auth">true</prop>  
    24                     <prop key="mail.smtp.timeout">0</prop>  
    25                 </props>  
    26             </property>  
    27         </bean>  
    28         
    29         <bean id="sendMail" class="com.xxlong.javamail.SendMail">
    30             <property name="mailSender" ref="mailSender"></property>
    31             <property name="velocityEngine" ref="velocityEngine" />
    32         </bean>
    33         
    34           <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">  
    35         <property name="velocityProperties">     
    36             <props>     
    37                 <prop key="resource.loader">class</prop>  
    38                 <prop key="class.resource.loader.class">     
    39                     org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader     
    40                 </prop>     
    41                 <prop key="velocimacro.library"></prop>     
    42             </props>     
    43         </property>     
    44    </bean>  
    45     </beans>  

    applicationContext-mail.xml

    sendMail.java

      1 package com.xxlong.javamail;
      2 
      3 import java.io.File;
      4 import java.util.HashMap;
      5 import java.util.Map;
      6 import java.util.Properties;
      7 
      8 import javax.mail.internet.MimeMessage;
      9 import javax.mail.internet.MimeUtility;
     10 
     11 import org.apache.velocity.app.VelocityEngine;
     12 import org.springframework.mail.SimpleMailMessage;
     13 import org.springframework.mail.javamail.JavaMailSender;
     14 import org.springframework.mail.javamail.MimeMessageHelper;
     15 import org.springframework.ui.velocity.VelocityEngineUtils;
     16 
     17 public class SendMail {  
     18 
     19       private JavaMailSender mailSender;
     20         public void setMailSender(JavaMailSender mailSender) {
     21             this.mailSender = mailSender;
     22         }
     23         
     24         private VelocityEngine velocityEngine;
     25         public void setVelocityEngine(VelocityEngine velocityEngine) {
     26             this.velocityEngine = velocityEngine;
     27         }
     28 
     29 
     30 
     31     //文本邮件
     32     public void sendTextMail() {  
     33         //<span style="color: #ff0000;">注意SimpleMailMessage只能用来发送text格式的邮件</span>  
     34         SimpleMailMessage mail = new SimpleMailMessage(); 
     35         try {  
     36             mail.setTo("1044489906@qq.com");//接受者  
     37             mail.setFrom("basketball402@163.com");//发送者,这里还可以另起Email别名,不用和xml里的username一致  
     38             mail.setSubject("spring mail test!");//主题  
     39             mail.setText("springMail的简单发送测试");//邮件内容  
     40             mailSender.send(mail);  
     41             System.out.println("*******************send Success!************************");
     42         } catch (Exception e) {  
     43             e.printStackTrace();  
     44         }  
     45     }  
     46     
     47 
     48 
     49     //html邮件
     50     public void sendHtmlMail() {  
     51          // JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
     52           //MimeMessage mailMessage = senderImpl.createMimeMessage();        
     53         MimeMessage mailMessage = mailSender.createMimeMessage(); 
     54           try {  
     55               //设置utf-8或GBK编码,否则邮件会有乱码  
     56               MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");  
     57               messageHelper.setTo("1044489906@qq.com");//接受者     
     58               messageHelper.setFrom("basketball402@163.com");//发送者  
     59               messageHelper.setSubject("html test");//主题  
     60               //邮件内容,注意加参数true,表示启用html格式  
     61               messageHelper.setText("<html><head></head><body><h1>hello!!您注册成功了</h1></body></html>",true);  
     62 /*              senderImpl.setUsername("username") ; // 根据自己的情况,设置username
     63                 senderImpl.setPassword("password") ; // 根据自己的情况, 设置password
     64                 Properties prop = new Properties() ;
     65                 prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
     66                 prop.put("mail.smtp.timeout", "25000") ; 
     67                 senderImpl.setJavaMailProperties(prop); */              
     68               mailSender.send(mailMessage);  
     69                 System.out.println("*******************send Success!************************");
     70           } catch (Exception e) {  
     71            e.printStackTrace();  
     72           }  
     73 }
     74     
     75     //html邮件带附件
     76     public void sendHtmlAttachMail() {  
     77 /*          JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
     78           MimeMessage mailMessage = senderImpl.createMimeMessage();  */
     79         MimeMessage mailMessage = mailSender.createMimeMessage(); 
     80           try {  
     81             //设置utf-8或GBK编码,否则邮件会有乱码  
     82             MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");  
     83            messageHelper.setTo("1044489906@qq.com");//接受者     
     84            messageHelper.setFrom("basketball402@163.com");//发送者  
     85            messageHelper.setSubject("html带附件test");//主题  
     86            //邮件内容,注意加参数true  
     87            //messageHelper.setText("<html><head></head><body><h1>恭喜您注册成功了!</h1></body></html>",true);  
     88            File myPicture = new File("/home/xxlong/桌面/xiaomao2.jpg");    
     89            
     90            //如果是html代码,boolean 的参数用该为true    
     91           /* messageHelper.setText("<html><head><meta http-equiv="+"Content-Type"+" content="+"text/html; charset=gb2312"+
     92            "></head><body><h1>恭喜您 注册成功了!去登陆<a href=''http://localhost:8080/imagemark/login.jsp>http://localhost:8080/imagemark/login.jsp"+ "</a>查看<br><img src='cid:myPicture'></body></html>", true);    */
     93            messageHelper.setText("<html><head><meta http-equiv="+"Content-Type"+" content="+"text/html; charset=gb2312"+
     94                    "></head><body><h1>恭喜您 注册成功了!</body></html>", true); 
     95          
     96            //添加图片至HTML 代码中    
     97            //messageHelper.addInline("myPicture", myPicture);  
     98            
     99            //附件内容 
    100           // messageHelper.addInline("a", new File("/home/xxlong/桌面/xiaomao2.jpg"));  
    101            //messageHelper.addInline("b", new File("/home/xxlong/ccccc/makefile"));   
    102            File file=new File("/home/xxlong/py/python.rar");    
    103            // 这里的方法调用和插入图片是不同的,使用MimeUtility.encodeWord()来解决附件名称的中文问题  
    104            messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()), file);   
    105            mailSender.send(mailMessage);  
    106            System.out.println("*******************send Success!************************");
    107           } catch (Exception e) {  
    108            e.printStackTrace();  
    109           } 
    110     }
    111     
    112     
    113     
    114     //带模板的邮件
    115     public void sendModelMail(){     
    116         // JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();  
    117         //MimeMessage mailMessage = senderImpl.createMimeMessage();        
    118       MimeMessage mailMessage = mailSender.createMimeMessage(); 
    119         try {  
    120             //设置utf-8或GBK编码,否则邮件会有乱码  
    121             MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"utf-8");  
    122             messageHelper.setTo("1044489906@qq.com");//接受者     
    123             messageHelper.setFrom("basketball402@163.com");//发送者  
    124             messageHelper.setSubject("html mode test");//主题  
    125           // 声明Map对象,并填入用来填充模板文件的键值对  
    126           Map<String, String> model = new HashMap<String, String>();  
    127           model.put("username", "merchant1");  
    128           model.put("url", "http://222.214.218.140:90/imagemark/login.jsp");  
    129           // Spring提供的VelocityEngineUtils将模板进行数据填充,并转换成普通的String对象  
    130           String emailText = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "velocity/register.vm","utf-8", model);  
    131             //邮件内容,注意加参数true,表示启用html格式  
    132             messageHelper.setText(emailText, true);          
    133             mailSender.send(mailMessage);  
    134               System.out.println("*******************send mode mail Success!************************");
    135         } catch (Exception e) {  
    136          e.printStackTrace();  
    137         }
    138         
    139     }
    140 }

    Test.java

    package com.xxlong.javamail;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Test {
        private static ApplicationContext ctx = null;  
        public static void main(String[] args) {  
                //获取上下文  
                ctx = new ClassPathXmlApplicationContext("applicationContext-mail.xml");  
                //获取JavaMailSender bean  
                SendMail sendMail=  (SendMail) ctx.getBean("sendMail");  
                //sendMail.sendTextMail();
                //sendMail.sendHtmlMail();
                sendMail.sendHtmlAttachMail();
           sendMail.
    sendModelMail()
    } }

    pom.xml

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     2   <modelVersion>4.0.0</modelVersion>
     3   <groupId>com.xxlong</groupId>
     4   <artifactId>javamail</artifactId>
     5   <version>0.0.1-SNAPSHOT</version>
     6   <build/>
     7   
     8    <packaging>jar</packaging>
     9   <name>spring-mail-example</name>
    10   <url>http://maven.apache.org</url>
    11   <properties>
    12     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    13   </properties>
    14 
    15   <dependencies>
    16       
    17           <dependency>
    18             <groupId>javax.servlet</groupId>
    19             <artifactId>servlet-api</artifactId>
    20             <version>3.0-alpha-1</version>
    21         </dependency>
    22   
    23     <!-- Spring framework -->
    24     <dependency>
    25       <groupId>org.springframework</groupId>
    26       <artifactId>spring</artifactId>
    27       <version>2.5.6</version>
    28     </dependency>
    29     
    30        <dependency>
    31     <groupId>org.springframework</groupId>
    32     <artifactId>spring-context-support</artifactId>
    33     <version>3.1.1.RELEASE</version>
    34 </dependency>
    35     
    36     <!-- Javamail API -->
    37     <dependency>
    38       <groupId>javax.mail</groupId>
    39       <artifactId>mail</artifactId>
    40       <version>1.4.4</version>
    41     </dependency>
    42     
    43 <dependency>
    44             <groupId>org.apache.velocity</groupId>
    45             <artifactId>velocity</artifactId>
    46             <version>1.7</version>
    47         </dependency>
    48         <dependency>
    49             <groupId>org.apache.velocity</groupId>
    50             <artifactId>velocity-tools</artifactId>
    51             <version>2.0</version>
    52         </dependency>
    53   
    54     
    55     <dependency>
    56       <groupId>junit</groupId>
    57       <artifactId>junit</artifactId>
    58       <version>3.8.1</version>
    59       <scope>test</scope>
    60     </dependency>    
    61   </dependencies>
    62 </project>

    src/main/resources下新建velocity文件夹,创建register.vm

     1 <html>  
     2     <head>  
     3     </head>  
     4     <body>  
     5             亲爱的${username} :<br>
     6             欢迎加入imagemark! &nbsp;&nbsp;当您收到这封信的时候,您已经可以正常登录了。<br>  <br>
     7             请点击链接登录首页:${url}  &nbsp;&nbsp;如果点击以上链接没有反应,请将上面的地址拷贝至您的浏览器(如IE)的地址栏进入。<br> <br>
     8             如果您并未发过请求,则可能是因为其他用户在注册的时候误输入了您的电子邮件地址而使您收到这份邮件,那么您可以放心的忽略此邮件,无需进一步采取任何操作<br>
     9     </body>  
    10 </html>
  • 相关阅读:
    SOCKET 3次握手
    NativeXml帮助(四) http://gaoyanan.blog.sohu.com/162725319.html
    DELPHI下的SOCK编程(转)
    socket 编程入门教程(三)TCP原理:5、TCP的三次握手(threeway handshake)
    计算机术语的英文缩写
    提高查询速度方法总结
    复制表结构的通用存储过程
    QQ盗号工具代码(破解键盘锁)
    使用VB将SQL SERVER 的脚本导出
    2007第四周 关于逛街
  • 原文地址:https://www.cnblogs.com/xxlong/p/4785737.html
Copyright © 2020-2023  润新知