文件配置例如以下:
spring-quartz2.xml
package com.study; import java.io.File; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.context.ServletContextAware; @Component public class QuartzJob{ @Autowired private JavaMailSender jms; private SimpleMailMessage smm; private MimeMessage mailMsg; public QuartzJob() throws ServletException{ //initSimpleMailMSG(); //initHTMLMailMSG(); initHTMLWithAttachMailMsg(); System.out.println("Quartzjob创建成功"); } @Scheduled(cron = "0/1 * * * * ? ") public void run(){ System.out.println("Quartz运行的任务调度发送邮件"); try { //jms.send(smm); jms.send(mailMsg); } catch (Exception e) { e.printStackTrace(); } } private void initSimpleMailMSG(){//发送简单邮件 smm = new SimpleMailMessage(); smm.setTo("253503125@qq.com"); smm.setFrom("hbzhongqian@163.com"); smm.setSubject("測试邮件"); smm.setText("springMail的简单測试发送邮件"); } private void initHTMLMailMSG(){//发送HTML格式的邮件 JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); mailMsg = senderImpl.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mailMsg,true,"utf-8"); messageHelper.setTo("253503125@qq.com");//接受者 messageHelper.setFrom("hbzhongqian@163.com");//发送者 messageHelper.setSubject("測试邮件");//主题 //邮件内容,注意加參数true,表示启用html格式 messageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1><font color='red'>BaBY</font></body></html>",true); } catch (Exception e) { e.printStackTrace(); } } private void initHTMLWithAttachMailMsg(){//发送带附件的邮件 JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); mailMsg = senderImpl.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mailMsg,true,"utf-8"); messageHelper.setTo("253503125@qq.com");//接受者 messageHelper.setFrom("hbzhongqian@163.com");//发送者 messageHelper.setSubject("測试邮件");//主题 messageHelper.setText("<html><head></head><body><h1>hello!!chao.wang</h1></body></html>",true); //附件内容 messageHelper.addInline("a", new File("E:/xiezi.png")); // messageHelper.addInline("b", new File("E:/logo.png")); // 这里的方法调用和插入图片是不同的,使用MimeUtility.encodeWord()来解决附件名称的中文问题 // messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()), file); } catch (Exception e) { e.printStackTrace(); } } }
邮件发送带附件存在问题。