使用spring的JavaMailSender发送邮件

来源:互联网 发布:女生 喜欢的男人 知乎 编辑:程序博客网 时间:2024/06/06 19:30

参考 http://www.blogjava.NET/fancydeepin/category/51935.html

1、如果是maven项目,需要引入依赖包

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <dependency>  
  2.     <groupId>javax.mail</groupId>  
  3.     <artifactId>mail</artifactId>  
  4.     <version>1.4.4</version>  
  5. </dependency>  
2、在项目加载的basic.xml中,配置两个bean:JavaMailSenderImpl和SimpleMailMessage,在后续发送邮件中通过这两个类进行发送。

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  2.        <property name="host" >  
  3.         <value>----</value>  
  4.        </property>  
  5.        <property name="port" >  
  6.         <value type="java.lang.Integer">----</value>  
  7.        </property>  
  8.        <property name="protocol">  
  9.         <value>smtps</value>  
  10.        </property>  
  11.        <property name="username">  
  12.         <value>----</value>  
  13.        </property>  
  14.        <property name="password">  
  15.         <value>----</value>  
  16.        </property>  
  17.        <!-- SMTP服务器验证 -->  
  18.        <property name="javaMailProperties">  
  19.            <props>  
  20.                <!-- 验证身份 -->  
  21.                <prop key="mail.smtps.auth">true</prop>  
  22.                <prop key="mail.smtp.ssl.enable">true</prop>  
  23.             <prop key="mail.transport.protocol">smtps</prop>  
  24.           </props>  
  25.        </property>  
  26.    </bean>  
  27.      
  28.    <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage">  
  29.     <property name="from">  
  30.         <value>${notify_service.smtp_mail.username}</value>  
  31.     </property>  
  32.    </bean>      

3、在实际发送的class里面调用
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. private MailSender mailSender;  
  2.     private SimpleMailMessage simpleMailMessage;  
  3.   
  4. //初始化mailSender 和SimpleMailMessage 两个对象  
  5.   
  6. simpleMailMessage.setTo(sendTo);  
  7. simpleMailMessage.setSubject(subject);  
  8. simpleMailMessage.setText(content);  
  9. mailSender.send(simpleMailMessage);   


另外如果是发送HTML格式的邮件 参考:http://www.blogjava.Net/fancydeepin/archive/2012/06/12/spring-smtp-mail-with-attachment_maven3.html

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import javax.mail.MessagingException;  
  2. import javax.mail.internet.MimeMessage;  
  3.   
  4. import org.springframework.mail.SimpleMailMessage;  
  5. import org.springframework.mail.javamail.JavaMailSender;  
  6. import org.springframework.mail.javamail.MimeMessageHelper;  
  7.   
  8. private JavaMailSender javaMailSender;  
  9.     private MimeMessage mimeMessage;  
  10.     private MimeMessageHelper mimeMessageHelper;  
  11.     private SimpleMailMessage simpleMailMessage;  
  12.   
  13. try {  
[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1.                      mimeMessage = javaMailSender.createMimeMessage();  
  2. mimeMessageHelper = new MimeMessageHelper(mimeMessage,true,"GBK");  
  3. mimeMessageHelper.setFrom(simpleMailMessage.getFrom());  
  4. mimeMessageHelper.setTo(sendTo);  
  5. mimeMessageHelper.setSubject(subject);  
  6. mimeMessageHelper.setText(content);  
  7. javaMailSender.send(mimeMessage);  
  8.  catch (MessagingException e) {  
  9. e.printStackTrace();  




4、如果不用Spring直接用javamail发送

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import javax.mail.internet.InternetAddress;  
  2. import javax.mail.internet.MimeMessage;  
  3. import javax.mail.internet.MimeUtility;  
  4. import javax.mail.Session;  
  5. import javax.mail.MessagingException;  
  6. import javax.mail.Transport;  
  7.   
  8. public class SendHtmlMail {  
  9.    public void sendmail(){    
  10.             
  11.         //创建邮件发送类 JavaMailSender    
  12.         //用于发送基本的文本邮件信息(不能包括附件,及图片)    
  13.         JavaMailSender sender = new JavaMailSenderImpl();     
  14.             
  15.             
  16.         //设置邮件服务主机    
  17.         ((JavaMailSenderImpl)sender).setHost("smtp.sohu.com");    
  18.         //发送者邮箱的用户名    
  19.         ((JavaMailSenderImpl)sender).setUsername("userName");    
  20.         //发送者邮箱的密码    
  21.         ((JavaMailSenderImpl)sender).setPassword("password");    
  22.             
  23.         //配置文件,用于实例化java.mail.session    
  24.         Properties pro = System.getProperties();    
  25.             
  26.         //登录SMTP服务器,需要获得授权,网易163邮箱新近注册的邮箱均不能授权。    
  27.         //测试 sohu 的邮箱可以获得授权    
  28.         pro.put("mail.smtp.auth""true");    
  29.         pro.put("mail.smtp.socketFactory.port""25");    
  30.         pro.put("mail.smtp.socketFactory.fallback""false");    
  31.             
  32.         //通过文件获取信息    
  33.         ((JavaMailSenderImpl)sender).setJavaMailProperties(pro);    
  34.             
  35.             
  36.         //创建基本邮件信息    
  37.         MailMessage mailMessage = new SimpleMailMessage();    
  38.             
  39.         //发送者地址,必须填写正确的邮件格式,否者会发送失败    
  40.         mailMessage.setFrom("******@sohu.com");    
  41.         //邮件主题    
  42.         mailMessage.setSubject("测试邮件");    
  43.         //邮件内容,简单的邮件信息只能添加文本信息    
  44.         mailMessage.setText("测试");    
  45.         //邮件接收者的邮箱地址    
  46.         mailMessage.setTo("******@qq.com");    
  47.             
  48.             
  49.         //发送邮件,参数可以是数组    
  50.         //sender.send(SimpleMailMessage[])    
  51.         sender.send((SimpleMailMessage)mailMessage);    
  52.             
  53.     }    
  54. }  


5、javaMail发送HTML个是的邮件

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public void sendMimeMail() throws MessagingException{    
  2.             
  3.         //创建邮件发送类 JavaMailSender    
  4.         //用于发送多元化邮件,包括附件,图片,html 等    
  5.         JavaMailSender mimeMailSender = new JavaMailSenderImpl();    
  6.             
  7.         //设置邮件服务主机    
  8.         ((JavaMailSenderImpl)mimeMailSender).setHost("smtp.sohu.com");    
  9.         //发送者邮箱的用户名    
  10.         ((JavaMailSenderImpl)mimeMailSender).setUsername("userName");    
  11.         //发送者邮箱的密码    
  12.         ((JavaMailSenderImpl)mimeMailSender).setPassword("password");    
  13.             
  14.         //配置文件,用于实例化java.mail.session    
  15.         Properties pro = System.getProperties();    
  16.             
  17.         //登录SMTP服务器,需要获得授权,网易163邮箱新近注册的邮箱均不能授权。    
  18.         //测试 sohu 的邮箱可以获得授权    
  19.         pro.put("mail.smtp.auth""true");    
  20.         pro.put("mail.smtp.socketFactory.port""25");    
  21.         pro.put("mail.smtp.socketFactory.fallback""false");    
  22.             
  23.         ((JavaMailSenderImpl)mimeMailSender).setJavaMailProperties(pro);    
  24.             
  25.         //创建多元化邮件    
  26.         MimeMessage mimeMessage = ((JavaMailSenderImpl)mimeMailSender).createMimeMessage();    
  27.             
  28.         //创建 mimeMessage 帮助类,用于封装信息至 mimeMessage    
  29.         MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true"GBK");     
  30.             
  31.         //基本信息    
  32.             
  33.         //发送者地址,必须填写正确的邮件格式,否者会发送失败    
  34.         helper.setFrom("*******@sohu.com");    
  35.         //邮件主题    
  36.         helper.setSubject("测试邮件");    
  37.         //邮件内容,简单的邮件信息只能添加文本信息    
  38.         helper.setText("测试");    
  39.         //邮件接收者的邮箱地址    
  40.         helper.setTo("******@qq.com");    
  41.             
  42.             
  43.         //多元化信息    
  44.             
  45.         //添加HTML 信息    
  46.         File myPicture = new File("C:\\Documents and Settings\\Administrator\\桌面\\kz2.jpg");    
  47.             
  48.         //如果是html代码,boolean 的参数用该为true    
  49.         helper.setText("<html><head><meta http-equiv="+"Content-Type"+" content="+"text/html; charset=gb2312"+"></head><body><h1>新书快递通知</h1>你的新书快递申请已推送新书,请到<a href=''>空间"    
  50.                     + "</a>中查看<br><img src='cid:myPicture'></body></html>"true);    
  51.             
  52.         //添加图片至HTML 代码中    
  53.         helper.addInline("myPicture", myPicture);    
  54.             
  55.         //添加附件    
  56.         File file = new File("C:\\Documents and Settings\\Administrator\\桌面\\validate.jar");    
  57.         helper.addAttachment("picture", myPicture);    
  58.         helper.addAttachment("picture", file);    
  59.             
  60.         ((JavaMailSender)mimeMailSender).send(mimeMessage);    
  61.             
  62.         System.out.println("发送成功");    
  63.     }  
0 0