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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我