• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

dream311

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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>

 

posted on 2015-09-06 15:28  dream311  阅读(204)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3