Java Spring-仅当web应用程序部署在GCP上时,才需要SMTPSendFailedException身份验证

Java Spring-仅当web应用程序部署在GCP上时,才需要SMTPSendFailedException身份验证,java,spring,tomcat,google-cloud-platform,Java,Spring,Tomcat,Google Cloud Platform,我有一个很奇怪的问题, 当我尝试发送电子邮件时,当WEBAPP在本地计算机上运行时,一切都很好。 但当我把WEBAPP上传到谷歌的服务器上时,它把我吓了一跳 Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at\n530 5.5.1 https://support.google.com/mail/?p=WantAuthError g

我有一个很奇怪的问题, 当我尝试发送电子邮件时,当WEBAPP在本地计算机上运行时,一切都很好。 但当我把WEBAPP上传到谷歌的服务器上时,它把我吓了一跳

Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530-5.5.1 Authentication Required. Learn more at\n530 5.5.1  https://support.google.com/mail/?p=WantAuthError g1sm2030389ioj.45 - gsmtp\n"
这是发送电子邮件的类

@Service
public class MailService {
    private JavaMailSender mailSender;

@Autowired
public MailService(JavaMailSender mailSender) {
    this.mailSender = mailSender;
}

@Async
public void sendMail(ArrayList<String> mails, String body, String title){
    SimpleMailMessage mailMessage = new SimpleMailMessage();
    mailMessage.setFrom("some mail");
    mailMessage.setSubject(title);
    mailMessage.setText(body);
    for (String to :
            mails) {
        mailMessage.setTo(to);
        mailSender.send(mailMessage);
    }

}

}
@服务
公共类邮件服务{
私有JavaMailSender;
@自动连线
公共邮件服务(JavaMailSender){
this.mailssender=mailssender;
}
@异步的
public void sendMail(ArrayList邮件、字符串正文、字符串标题){
SimpleEmailMessage=新建SimpleEmailMessage();
mailMessage.setFrom(“一些邮件”);
mailMessage.setSubject(标题);
mailMessage.setText(正文);
对于(字符串到:
(邮件){
mailMessage.setTo(to);
mailssender.send(mailMessage);
}
}
}
我会是什么?!在IDE上工作得非常好,但是当我在TomcatServlet上部署它时,它的验证就完成了


我在用户设置上启用了不太安全的应用程序

GCP阻止标准电子邮件端口,您可以选择非标准端口发送电子邮件。您还可以利用计算引擎合作伙伴提供的邮件服务:SendGrid、Mailgun和Mailjet


请参见此处:

我正在尝试从gmail发送标准smtp邮件,我需要为此打开端口!?您是否使用Gmail应用程序或标准Java mail api,尝试从发件人发送带有Gmail地址的电子邮件?我正在使用Java mail api,现在我看到我可以并建议在我的spring应用程序中使用第三方邮件服务,我需要放置主机等。。。在Proprity文件而不是gmail?你必须实现这个第三方API-在第三方服务中打开帐户,并在你的应用程序中使用它的库。