使用MailJet SMTP发送JavaMail能否无需配置Gmail设置?
使用MailJet SMTP发送JavaMail无需Gmail设置的解决方案
当然可以完全不用Gmail的任何设置,只需要针对MailJet的SMTP服务调整你的JavaMail配置就行~
不过看你当前的代码,有个关键配置错误会导致连接失败:端口587是STARTTLS端口,它需要先建立普通TCP连接,再通过STARTTLS命令升级为SSL加密,但你却配置了SSLSocketFactory——这是465端口(SSL直连)才需要的配置,用在587上会直接报错。
给你修正后的正确配置:
props.put("mail.smtp.host", "in-v3.mailjet.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); // 启用STARTTLS是587端口的核心 // 请移除这两行错误的配置: // props.put("mail.smtp.socketFactory.port", "587"); // props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
如果你更倾向于用465端口(直接SSL加密连接),配置可以改成这样:
props.put("mail.smtp.host", "in-v3.mailjet.com"); props.put("mail.smtp.port", "465"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.ssl.enable", "true");
最后别忘了:SMTP的用户名和密码要用MailJet后台给你的API密钥(Username)和秘密密钥(Password),别搞混用成Gmail的账号密码哦。
内容的提问来源于stack exchange,提问作者Blomerus Van Der Westhuizen
相关产品推荐
相关产品推荐

