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(); }
本文地址:https://www.stayed.cn/item/23006
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我