zoukankan      html  css  js  c++  java
  • 解决使用commons-email发送邮件时不能发送附件的问题

    问题的发现及入坑过程

    1, 上百度查询,找到例子在代码中测试

    2,  因为其它发送功能已经写好了,所以只截取了附件部分代码,但是始终发送不成功

    3,  解决办法完全按照网上的代码去试,就发送成功了,知道是有些代码和网上的不一样,所以导致的

    问题的思考

    1,  首先如果发现发送不了附件就按照网上的代码来试这个功能,就会很快发现问题,但是因为邮件内容是正常发送的,附件发送不了,就认为自己写的功能没问题,就掉坑里了,然后就产生了对一些常识问题的怀疑,并对其进行修改,结果肯定是徒劳的,常识是不会出错的,其实没有找到真正出错的地方

    2,  这个问题比较特殊,个人感觉像是一个jar的bug,以后有空会看下原码,它就是邮件可以正常发送,但就是附件加不进来,然后也不报任何错,以后遇到这种问题,一定要找一个正确的来对比,正确的指的是可以发送邮件内容和附件的代码,找到后和自己的代码对比。

    3,  对这种问题的解决看源码肯定是可以解决问题的,但是看源码时间消耗会很久,看个一两天也许不会有什么收获,很纠结啊

    4,  换jar包这个问题应该在测试了正确的代码之后在考虑,何为正确代码,就是网上发布的,经过验证的,自己测试又可以得到正确结果的

    5,  对解决java问题, 一定要保持能有多正常就有多正常的想法,不能用错误去验证错误,最后得到的肯定是错误

    解决问题的办法

    1,  看源码解决

    2,  与正确的对比解决(即能有多正常就有多正常的解决办法)

    我的问题

    1,我看一眼自己的代码,然后看一眼网上搜到的,然后改一下自己的,一试不行,因为没改动地方啊,然后对网上的代码产生了怀疑,然后继续试,浪费了好多时间

    最后说一下我的错:

    我开始是这样写的,这种组合就只能发送内容,不能发送附件

    email.setContent(“<div>邮件内容</div>”);//添加邮件内容
    
    email.attach(attachment);//添加附件,attachment这个是附件的类

    这样就是可以的,但这种不能发送带html格式的

    email.setMsg(“邮件内容”);//添加邮件内容
    
    email.attach(attachment);//添加附件

    这样也是可以的,这种可以送带html格式的

    email.addPart(“<div>邮件内容</div>”);//添加邮件内容
    
    email.attach(attachment);//添加附件
  • 相关阅读:
    Font Awesome 中文网
    mobileselect学习
    JavaScript模块化
    webpack基本使用
    MVVM架构方式
    http-server开启测试服务器
    json-server模拟服务器API
    vue-router
    git的使用
    Vue生命周期
  • 原文地址:https://www.cnblogs.com/langxiansheng/p/12533845.html
Copyright © 2011-2022 走看看