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();
- }
复制代码
|