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();
}