我正试图使用 spring-boot-starter-mail
(参考:https://www.baeldung.com/spring-email)我的pom.xml(maven项目)中的依赖项,以java代码编程方式发送电子邮件。我可以快速创建一个“虚拟”或“扔掉”的gmail帐户并使其正常工作,但我必须退出公司的企业vpn,这是一个问题,因为我理想情况下希望从我的官方公司托管电子邮件发送此电子邮件,这是gmail,但带有自定义域名(例如。 my.name@companyname.com
). 无论vpn问题如何,我都无法在我的应用程序中发送我的公司电子邮件,即使尝试对“虚拟”gmail帐户执行相同的步骤,也无法获得以下异常:
javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful
是的,我能够使用telnet命令连接到我公司的smtp服务器,所以我知道我通过了这一点
$ telnet mail.mycompanyname.com 587
Trying 69.xx.xx.xxx...
Connected to abc99999.outlook.com.
Escape character is '^]'.
220 A99B999TY9999.outlook.office365.com Microsoft ESMTP MAIL Service ready at Tue, 6 Jul 2021 00:08:50 +0000
无论如何,为了让“虚拟”gmail帐户正常工作,我将其称为 dummy1234@gmail.com
现在,我不得不:
在gmail中打开“允许不太安全的应用”
这和我在公司gmail上做的一样,但仍然不起作用。这里是否有其他用户能够成功地使用此jakarta/javamail登录到他们的公司gmail并发送电子邮件?
这是我的主要配置:
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("mail.mycompanyname.com");
mailSender.setPort(587);
mailSender.setUsername(username);
mailSender.setPassword(password);
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.ssl.trust", "mail.mycompanyname.com")
return mailSender;
}
我有一些问题。
如果我的vpn/防火墙在我的java代码中阻止了发送这些电子邮件的访问,到底发生了什么?我在下面画的画准确吗?据我所知,使用javamail/jakarta的spring引导应用程序正在尝试连接到tomcat服务器上的本地端口(我假设这是端口587?或者smtp是否使用端口25?)。我假设我的防火墙阻止了我计算机上的这个端口,因此我无法连接到远程smtp.gmail.com服务器上的587端口?我是否可以使用计算机上未被防火墙阻止的其他端口连接到远程smtp服务器上的587端口?或者它们必须是相同的端口?
忽略这个vpn问题,我如何利用我公司的电子邮件而不是这个虚拟的gmail帐户?我有确切的密码和用户定义的虚拟帐户设置方式,但它失败了(我还打开了“允许不太安全的访问”)。我相信我们使用active directory进行密码管理-我的mailconfiguration类中是否仍缺少一些配置?我注意到在连接outlook中提到的telnet时smtp问候语
暂无答案!
目前还没有任何答案,快来回答吧!