首页 > 编程 > Java > 正文

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

2019-11-26 14:29:07
字体:
来源:转载
供稿:网友

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

<!-- mail sender -->   <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"     p:host="${mail.host}" p:port="${mail.port}"      p:username="${mail.user}" p:password="${mail.passwd}"></bean> 

       
mail配置

Email Configuration: mail.host=smtp.163.com mail.port=25 mail.user=xxxxxx@163.com mail.passwd=xxxxxxxx mail.from=xxxxxx@163.com 

控制器中注入mailSender:

@Controller public class EmailController {   private MailSender mailSender;   @Value("${mail.from}")   String emailFrom;      @Autowired   public void setMailSender(MailSender mailSender) {     this.mailSender = mailSender;   }      @RequestMapping(value="/sendEmail",method=RequestMethod.POST)   public ModelAndView sendEmail(@ModelAttribute("newEmail") ContactEmail newEmail,       BindingResult bindResult,SessionStatus status){     SimpleMailMessage message = new SimpleMailMessage();     message.setTo(newEmail.getTo());     message.setFrom(emailFrom);     message.setSubject(newEmail.getSubject());     message.setText(newEmail.getContent());     String result = "";     try{       mailSender.send(message);       result = "Email was sent!";     }catch(MailException e){       result = "Sending email failed!<br/><hr/>"+e.getMessage();     }     ModelAndView view = new ModelAndView("emailResult");     view.addObject("result", result);     return view;   } } 

mail form:

<form:form action="sendEmail.do" method="post" commandName="newEmail">   <div>     <p>   to:<form:input path="to" cssStyle="width:260px;"/>       <form:errors path="to" cssStyle="color:red;"/></p>     <p>subject:<form:input path="subject" cssStyle="width:260px;"/>       <form:errors path="subject" cssStyle="color:red;"/></p>     <p>content:<form:textarea path="content" rows="5" cols="60"></form:textarea><br/>       <form:errors path="content" cssStyle="color:red;"/></p>     <p><input type="submit" value="confirm and send"/></p>   </div>    </form:form> 

发送带附件的邮件:

try{  JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();    Properties props = new Properties();  props.put("mail.smtp.auth", "true");  senderImpl.setHost("smtp.163.com");  senderImpl.setUsername("zhangfl85");  senderImpl.setPassword("851010");  senderImpl.setJavaMailProperties(props);  MimeMessage mimeMessge = senderImpl.createMimeMessage();   MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessge,true);     mimeMessageHelper.setTo("zhangfl85@126.com");  mimeMessageHelper.setFrom("zhangfl85@163.com");  mimeMessageHelper.setSubject("添加附件测试");  mimeMessageHelper.setText("test",true);  FileSystemResource img = new FileSystemResource(new File("I:/liang.jpg"));   mimeMessageHelper.addAttachment(MimeUtility.encodeWord("3M样品仓库标准送货单模板.jpg"),,img);      senderImpl.send(mimeMessge); }catch(Exception e){  e.printStackTrace(); }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表