在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

Java的Spring框架中实现发送邮件功能的核心代码示例

2016-8-29 13:22| 发布者: zhangjf| 查看: 714| 评论: 0

摘要: Spring中已经封装了邮件操作类,通过spring配置文件可以便捷地注入到controller、action等地方。 下面是配置: !-- mail sender -- bean id=mailSender class=org.springframework.mail.javamail.JavaMailSenderIm ...

Spring中已经封装了邮件操作类,通过spring配置文件可以便捷地注入到controller、action等地方。
下面是配置:

  1. <!-- mail sender -->
  2. <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"
  3. p:host="${mail.host}" p:port="${mail.port}"
  4. p:username="${mail.user}" p:password="${mail.passwd}"></bean>
复制代码


mail配置

  1. Email Configuration:
  2. mail.host=smtp.163.com
  3. mail.port=25
  4. mail.user=xxxxxx@163.com
  5. mail.passwd=xxxxxxxx
  6. mail.from=xxxxxx@163.com
复制代码

控制器中注入mailSender:

  1. @Controller
  2. public class EmailController {
  3. private MailSender mailSender;
  4. @Value("${mail.from}")
  5. String emailFrom;
  6. @Autowired
  7. public void setMailSender(MailSender mailSender) {
  8. this.mailSender = mailSender;
  9. }
  10. @RequestMapping(value="/sendEmail",method=RequestMethod.POST)
  11. public ModelAndView sendEmail(@ModelAttribute("newEmail") ContactEmail newEmail,
  12. BindingResult bindResult,SessionStatus status){
  13. SimpleMailMessage message = new SimpleMailMessage();
  14. message.setTo(newEmail.getTo());
  15. message.setFrom(emailFrom);
  16. message.setSubject(newEmail.getSubject());
  17. message.setText(newEmail.getContent());
  18. String result = "";
  19. try{
  20. mailSender.send(message);
  21. result = "Email was sent!";
  22. }catch(MailException e){
  23. result = "Sending email failed!<br/><hr/>"+e.getMessage();
  24. }
  25. ModelAndView view = new ModelAndView("emailResult");
  26. view.addObject("result", result);
  27. return view;
  28. }
  29. }
复制代码

mail form:

  1. <form:form action="sendEmail.do" method="post" commandName="newEmail">
  2. <div>
  3. <p>   to:<form:input path="to" cssStyle="width:260px;"/>
  4. <form:errors path="to" cssStyle="color:red;"/></p>
  5. <p>subject:<form:input path="subject" cssStyle="width:260px;"/>
  6. <form:errors path="subject" cssStyle="color:red;"/></p>
  7. <p>content:<form:textarea path="content" rows="5" cols="60"></form:textarea><br/>
  8. <form:errors path="content" cssStyle="color:red;"/></p>
  9. <p><input type="submit" value="confirm and send"/></p>
  10. </div>
  11. </form:form>
复制代码

发送带附件的邮件:

  1. try{
  2. JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
  3. Properties props = new Properties();
  4. props.put("mail.smtp.auth", "true");
  5. senderImpl.setHost("smtp.163.com");
  6. senderImpl.setUsername("zhangfl85");
  7. senderImpl.setPassword("851010");
  8. senderImpl.setJavaMailProperties(props);
  9. MimeMessage mimeMessge = senderImpl.createMimeMessage();
  10. MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessge,true);
  11. mimeMessageHelper.setTo("zhangfl85@126.com");
  12. mimeMessageHelper.setFrom("zhangfl85@163.com");
  13. mimeMessageHelper.setSubject("添加附件测试");
  14. mimeMessageHelper.setText("test",true); FileSystemResource img = new FileSystemResource(new File("I:/liang.jpg"));
  15. mimeMessageHelper.addAttachment(MimeUtility.encodeWord("3M样品仓库标准送货单模板.jpg"),
  16. ,img);
  17. senderImpl.send(mimeMessge);
  18. }catch(Exception e){
  19. e.printStackTrace();
  20. }
复制代码

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-7 02:11

Copyright 2015-2025 djqfx

返回顶部