Java的Spring框架中实现发送邮件功能的核心代码示例
Spring中已经封装了邮件操作类,通过spring配置文件可以便捷地注入到controller、action等地方。
下面是配置:
<!--mailsender--> <beanid="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配置
EmailConfiguration: mail.host=smtp.163.com mail.port=25 mail.user=xxxxxx@163.com mail.passwd=xxxxxxxx mail.from=xxxxxx@163.com
控制器中注入mailSender:
@Controller publicclassEmailController{ privateMailSendermailSender; @Value("${mail.from}") StringemailFrom; @Autowired publicvoidsetMailSender(MailSendermailSender){ this.mailSender=mailSender; } @RequestMapping(value="/sendEmail",method=RequestMethod.POST) publicModelAndViewsendEmail(@ModelAttribute("newEmail")ContactEmailnewEmail, BindingResultbindResult,SessionStatusstatus){ SimpleMailMessagemessage=newSimpleMailMessage(); message.setTo(newEmail.getTo()); message.setFrom(emailFrom); message.setSubject(newEmail.getSubject()); message.setText(newEmail.getContent()); Stringresult=""; try{ mailSender.send(message); result="Emailwassent!"; }catch(MailExceptione){ result="Sendingemailfailed!<br/><hr/>"+e.getMessage(); } ModelAndViewview=newModelAndView("emailResult"); view.addObject("result",result); returnview; } }
mailform:
<form:formaction="sendEmail.do"method="post"commandName="newEmail"> <div> <p>to:<form:inputpath="to"cssStyle="width:260px;"/> <form:errorspath="to"cssStyle="color:red;"/></p> <p>subject:<form:inputpath="subject"cssStyle="width:260px;"/> <form:errorspath="subject"cssStyle="color:red;"/></p> <p>content:<form:textareapath="content"rows="5"cols="60"></form:textarea><br/> <form:errorspath="content"cssStyle="color:red;"/></p> <p><inputtype="submit"value="confirmandsend"/></p> </div> </form:form>
发送带附件的邮件:
try{ JavaMailSenderImplsenderImpl=newJavaMailSenderImpl(); Propertiesprops=newProperties(); props.put("mail.smtp.auth","true"); senderImpl.setHost("smtp.163.com"); senderImpl.setUsername("zhangfl85"); senderImpl.setPassword("851010"); senderImpl.setJavaMailProperties(props); MimeMessagemimeMessge=senderImpl.createMimeMessage(); MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessge,true); mimeMessageHelper.setTo("zhangfl85@126.com"); mimeMessageHelper.setFrom("zhangfl85@163.com"); mimeMessageHelper.setSubject("添加附件测试"); mimeMessageHelper.setText("test",true);FileSystemResourceimg=newFileSystemResource(newFile("I:/liang.jpg")); mimeMessageHelper.addAttachment(MimeUtility.encodeWord("3M样品仓库标准送货单模板.jpg"), ,img); senderImpl.send(mimeMessge); }catch(Exceptione){ e.printStackTrace(); }