如何用ThingsBoard规则链“发送邮件”节点发Gmail?演示版报错求助
问题2:演示版ThingsBoard发送邮件时出现
java.lang.NoSuchMethodError错误 你碰到的这个错误,本质是JavaMail API版本冲突。演示版的ThingsBoard环境里,内置的JavaMail库版本比较旧,和Gmail SMTP要求的版本不兼容,导致找不到特定的方法com.sun.mail.util.TraceInputStream.(Ljava/io/InputStream;Lcom/sun/mail/util/MailLogger;)V。
针对演示版没法改环境依赖的情况,给你两个解决思路:
思路一:换用其他邮件服务商(最省心)
既然演示版没法调整依赖,不如换个对版本要求没那么严的邮箱,比如Outlook/Hotmail:- SMTP服务器:
smtp.office365.com - 端口:
587 - 启用TLS:勾选
- 用户名:你的Outlook邮箱地址
- 密码:邮箱原密码(开了2FA的话,同样要生成应用专用密码)
- SMTP服务器:
思路二:自己搭ThingsBoard实例(彻底解决)
要是非得用Gmail,那只能自己部署ThingsBoard,然后调整依赖版本:- 下载ThingsBoard源码,或者基于官方Docker镜像做自定义修改
- 把项目里的
javax.mail或com.sun.mail依赖升级到1.6.2及以上的兼容版本 - 重新编译打包或者构建新的Docker镜像,部署后再配置Gmail的发送邮件节点
另外提一句:有些演示版环境可能限制了对外的SMTP连接,你可以先测试下能不能访问smtp.gmail.com的587端口,比如用telnet命令telnet smtp.gmail.com 587,要是连不上,那可能是环境的网络限制问题。
内容的提问来源于stack exchange,提问作者Embedded
相关产品推荐
相关产品推荐

