JavaMail邮件工具开发中遇到的典型报错汇总_javax.mail.messagingexception: no inputstream from-程序员宅基地

技术标签: SpringBoot项目  

背景:实现一个web端的邮件管理系统,前端使用vue框架,后端使用Springboot,数据库使用mysql;其中收发邮件的核心使用的是javamail。本文的是在将开发中一些典型的问题记录下来以供后面回顾参考

1.多半是空指针异常引入,在这里犯错误的原因是习惯了使用注解@Autowried初始化对象了,但是对于非Spring的部分,是不可以使用这个注解的,所以需要手工初始化对象,eg:RecvEmailInfo recvEmailInfo = new RecvEmailInfo() ;
在这里插入图片描述
2.字符集不匹配,去数据库中将字段的字符集改成utf8
报错信息:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [insert into T_RECV_EMAIL_INFO (EMAIL_ADDRESS,EMAIL_FROM, EMAIL_SUBJECT,EMAIL_CONTENT) values (?,?,?,?)]; SQL state [HY000]; error code [1366]; Incorrect string value: ‘\xEF\x0Aa\xC8\x02\x00…’ for column ‘EMAIL_FROM’ at row 1; nested exception is java.sql.SQLException: Incorrect string value: ‘\xEF\x0Aa\xC8\x02\x00…’ for column ‘EMAIL_FROM’ at row 1

3.发件人的地址能存到数据库,但是是一个非正常的地址:[Ljavax.mail.internet.InternetAddress;@7bcdf523
解决方法:地址类型是一个比较特殊的类型,需要进行拆分
在这里插入图片描述
4.收取邮件的时候由于发件人为空,导致的空指针异常:java.lang.NullPointerException
空指针异常一般是因为操作了一个对象,但是这个对象的值为空导致的
解决方法:自己想的方法是手工给发件人赋一个值,存到数据库中
在这里插入图片描述
5.收取邮件偶发性的出现以下报错:javax.mail.MessagingException: No inputstream from datasource;
未解决
在这里插入图片描述
6.使用postman调用服务的时候报错
原因:该服务需要调用另一个服务,属于跨域了,因此被拦截了,需要在confing中配置相关文件
在这里插入图片描述

7.服务起不来,也不报错,就是会自己停止
原因:自己的骚操作,在main函数上打了断点,去掉断点就可以了

8.No ‘Access-Control-Allow-Origin’ header is present on the requested resource’, 跨域访问的解决方法
可参考文章:https://blog.csdn.net/xujinggen/article/details/83999391
我是用的方式是在nginx中进行处理
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Poppy_tester/article/details/101700561

智能推荐

sicily1029 Rabbit 中大OJ解题报告-程序员宅基地

文章浏览阅读737次。由于中大的oj需要内网才能进去,就提供不了原始题目了,但是题目的意思就是说,开始有一对成年兔子,一对成年兔子每年能生一对幼兔,幼兔等m个月才成长为成年兔子,问d个月后总共有多少对兔子。输入m d 2 3 3 5 1 100输出 5 9 100题目意思相信大家都能明白,那么解题思路又是怎么样的呢我来大概说一下,先找到兔子增长_中大oj

C程序设计第五版谭浩强 || 第四章习题答案-程序员宅基地

文章浏览阅读1.5k次,点赞40次,收藏34次。【代码】C程序设计第五版谭浩强 || 第四章习题答案

CPO-CNN-LSTM分类预测,【24新算法】冠豪猪算法CPO优化卷积神经网络-长短期记忆网络多特征分类预测-程序员宅基地

文章浏览阅读161次。CPO-CNN-LSTM分类预测,【24新算法】冠豪猪算法CPO优化卷积神经网络-长短期记忆网络多特征分类预测

非Root或Administrator账户下运行Nginx_nginx用什么用户启动-程序员宅基地

文章浏览阅读1.4k次。这样,就可以在CentOS系统中使用普通用户身份来管理和启动Nginx服务了。请注意,对于其他需要管理员权限才能完成的操作(如修改系统文件等),还需要使用sudo命令或者切换到管理员账户进行操作。下载并安装Nginx,保证Nginx可执行文件所在的路径对普通用户具有可读、可执行的权限。安装过程中,在指定 Nginx 配置文件路径时要特别注意,确保可访问并正确填写。启动Nginx服务。是您实际安装Nginx时配置文件存放的路径。_nginx用什么用户启动

【解决】无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]_无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[h-程序员宅基地

文章浏览阅读6.8k次。问题描述:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]在调用<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>时出现异常调用tomcat服务器时,页面出错:原因分析:首先确认导入的jar包是否正确经过多次导包还是老样子,在网上也找了挺多方法,但都不凑效解决方案:方案一:重新导入jar包如果是jar包缺失_无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[h

matlab2019a的help文档不显示的解决_matlab没安装帮助文档-程序员宅基地

文章浏览阅读1k次。仅作为学习记录,大佬请跳过。关键词:在help文档里的——预设齿轮按钮——安装到本地即可显示感谢CSDN的一位优秀博主文章:https://blog.csdn.net/weixin_44331401/article/details/97013548..._matlab没安装帮助文档

随便推点

优动漫PAINT-超简单灌木教程-程序员宅基地

文章浏览阅读93次。超简单灌木教程~零基础神马的都能神还原哦!优动漫PAINT下载:http://wm.makeding.com/iclk/?zoneid=18597想要Get到更多有关优动漫的信息包括软件下载,可关注优动漫PAINT中文官网哦!转载于:https://www.cnblogs.com/danzi/p/8527177.html..._优动漫边缘上色

Netty 1-程序员宅基地

文章浏览阅读716次,点赞24次,收藏27次。Channel与BufferJava NIO系统的核心通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备(例如:文件、套接字)的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理简而言之,通道负责传输,缓冲区负责存储常见的Channel有以下四种,其中FileChannel主要用于文件传输,其余三种用于网络通信Buffer有以下几种,其中使用较多的是ByteBufferByteBuffer。

VS 设置 C# 以下划线 _ 开头命名全局字段_visual studio 命名规则以_开头给-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏5次。VS 设置 C# 以下划线 _ 开头命名全局字段设置方法之前在某位大神的博客有看到这个设置方法,换电脑以后再找那个文章却找不到了,按回忆找到了设置方法,故写出来分享给大家。private readonly SearchResult _searchResult;设置方法以2019企业版为例,找到:工具 - 选项 - 文本编辑器 - C# - 代码样式 - 命名点击“管理命名样式”,然后再点左下角加号,新建一个命名规范,标题可以自己拟定,设置“必填前缀”为“_”,选择“camel 事例名称”,确_visual studio 命名规则以_开头给

测试用例设计--经典面试_面试测试用例设计-程序员宅基地

文章浏览阅读184次。在开始设计测试用例前,需要了解项目产品需求,只有对需求深入了解后,才能进一步进行测试用例设计。(1)水杯有很多,有瓷水杯,纸杯,保温杯,不绣钢杯等,水杯具体需求是哪种杯子?下面以测试【纸杯】为例。(2)水杯具有的特性要求: 杯子的容量:要求最大能装多少升水(满杯),空杯,半杯杯子的型状:圆型,上面口大,下面小。 杯子的材料:纸杯 ..._面试测试用例设计

【mysql】mysql中字符长度的问题_mysql mutipolygen 字符大小-程序员宅基地

文章浏览阅读1.6k次。只适用mysql5.0以上的版本: 1.一个汉字占多少长度与编码有关: UTF-8:一个汉字=3个字节 GBK:一个汉字=2个字节2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别3.MySQL检查长度,可用SQL语言: select LENGTH(fieldname) f_mysql mutipolygen 字符大小

【项目构建】java: -source 1.5 中不支持switch 中存在字符串_-source 1.5 中不支持 switch 中存在字符串-程序员宅基地

文章浏览阅读502次,点赞20次,收藏3次。使用maven进行项目构建时报错,信息如下。_-source 1.5 中不支持 switch 中存在字符串