Spring的javaMail邮件发送(带附件)
项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习。
首先需要在配置文件jdbc.properties添加:
#------------ Mail ------------ mail.smtp.auth=true mail.smtp.timeout=25000 mail.smtp.starttls.enable=false
二、配置applicationContext.xml文件
<!-- 邮件发送 --> <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="javaMailProperties"> <props> <!-- SMTP服务器是否需要用户认证,默认为false --> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <!-- I/O连接超时时间,单位为毫秒,默认为永不超时 --> <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop> <!-- starttls验证 --> <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop> </props> </property> </bean>
三、在ServiceImpl声明注入
@Resource(name = "javaMailSender") private JavaMailSenderImpl javaMailSender;
四、方法的调用
try { javaMailSender.setHost("smtp.163.com"); javaMailSender.setPort(25); javaMailSender.setUsername("test_mail@163.com");// 邮箱账号 javaMailSender.setPassword("123456");// 密码 MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, false, "utf-8"); mimeMessageHelper.setFrom(MimeUtility.encodeWord("test_mail@163.com"));// 发送人 mimeMessageHelper.setSubject("邮件标题");// 邮件标题 mimeMessageHelper.setTo("12345678@qq.com");// 收件人 //mimeMessageHelper.setText("邮件内容", false);// 邮件内容,第二个参数表示是否发送的是HTML格式,true表示是,false表示否 // 添加邮件正文 MimeMultipart multipart = new MimeMultipart(); BodyPart contentPart = new MimeBodyPart(); contentPart.setContent("这里是邮件内容,测试邮件内容。", "text/html;charset=UTF-8"); multipart.addBodyPart(contentPart); // 添加附件 String[] paths = { "D:\\1024.png", "D:\\text.txt" }; for (String filePath : paths) { MimeBodyPart part = new MimeBodyPart(); FileDataSource fds = new FileDataSource(filePath); part.setFileName(MimeUtility.encodeWord(fds.getName()));// MimeUtility.encodeWord文件名解决中文乱码 part.setDataHandler(new DataHandler(fds)); multipart.addBodyPart(part); } mimeMessage.setContent(multipart); javaMailSender.send(mimeMessage);//发送 } catch (MessagingException e) { e.printStackTrace(); }
注:所需包 activation.jar、mail-1.4.4.jar、spring.jar