• 解决使用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);//添加附件
  • 相关阅读:
    Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法
    mysql主主复制(双主复制)配置步骤
    MHA安装手记
    MySQL MHA配置
    innobackupex 还原和备份实例
    scp命令
    给想进入餐饮业新手一些建议
    mysql mha 主从自动切换 高可用
    mysql innobackupex xtrabackup 大数据量 备份 还原
    MySQL主从复制、半同步复制和主主复制概述
  • 原文地址:https://www.cnblogs.com/langxiansheng/p/12533845.html
Copyright © 2020-2023  润新知