Spring发送邮件如何内嵌图片增加附件
用到的JAR包:
spring.jar mail.jar activation.jar commons-logging.jar log4j-1.2.15.jar
内嵌图片,给定一个CID值即可,增加附件,使用MimeMessageHelper的addAttachment即可
现在一般不会做内嵌图片,因为这样邮件会很大,容易对服务器造成压力,一般做法是使用图片链接
另外,如果要做内嵌或发送图片,你应该使用信用较高的邮箱帐户,否则会报错:
554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件
对于163邮箱服务器会产生的其他问题,参见:http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html
以下是示例代码:
package test;import java.util.Properties;import javax.mail.Session;import javax.mail.internet.MimeMessage;import org.springframework.core.io.ClassPathResource;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;/** * 这里不做异常处理 */public class SendMail {public static void main(String[] args) throws Exception{// 发送器JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost('smtp.163.com');sender.setPort(25); // 默认就是25sender.setUsername('用户@163.com'); sender.setPassword('密码');sender.setDefaultEncoding('UTF-8');// 配置文件对象 Properties props = new Properties(); props.put('mail.smtp.auth', 'true'); // 是否进行验证Session session = Session.getInstance(props);sender.setSession(session); // 为发送器指定会话MimeMessage mail = sender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mail, true);helper.setTo('用户@163.com'); // 发送给谁helper.setSubject('强哥邀请,谁敢不从!'); // 标题helper.setFrom('用户@163.com'); // 来自// 邮件内容,第二个参数指定发送的是HTML格式helper.setText('<font color=’red’>强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!</font><br><img src=’cid:myImg’>',true);// 增加CID内容ClassPathResource img = new ClassPathResource('abc.jpg');helper.addInline('myImg', img);// 增加附件ClassPathResource file = new ClassPathResource('abc.zip');helper.addAttachment('abc.zip', file);sender.send(mail); // 发送System.out.println('邮件发送成功');}}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. Nodejs 连接 mysql时报Error: Cannot enqueue Query after fatal error错误的处理办法2. PHP里10个鲜为人知但却非常有用的函数3. vue实现分页的三种效果4. Python搭建Keras CNN模型破解网站验证码的实现5. Java 并行数据处理和性能分析6. Java Bean与Map之间相互转化的实现方法7. ajax请求后台得到json数据后动态生成树形下拉框的方法8. 解决python脚本中error: unrecognized arguments: True错误9. AJAX实现数据的增删改查操作详解【java后台】10. python算的上脚本语言吗
