我尝试使用 JavaMail 和 smtp 协议从服务器发送电子邮件。电子邮件是[电子邮件保护]。JavaMail 抛出了上述异常和此消息“客户端无权以此发件人身份发送”。有人能告诉我该怎么办吗?我的电子邮件已配置为 365 服务器。
Exception in thread "main" java.lang.RuntimeException: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender
at ao.co.karrega.test.ExtendedKarregaEmail.Send(ExtendedKarregaEmail.java:120)
at ao.co.karrega.test.mainEmail.main(mainEmail.java:11)
原因:com.sun.mail.smtp.SMTPSendFailedException:550 5.7.60 SMTP;客户端无权以此发件人身份发送
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2057)
at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1862)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1100)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at ao.co.karrega.test.ExtendedKarregaEmail.Send(ExtendedKarregaEmail.java:115)
... 1 more
答案1
您无法匿名中继。使用 O365 时需要注意一些事项。
- 您必须连接到端口 587(而不是 25)
- 您必须使用 TLS
- 您必须先向服务进行身份验证
- 您必须使用与发件人地址中验证的相同帐户。
如果您无法从应用程序支持此功能,则可能需要设置可以连接这些参数的内部 SMTP 中继,或者使用可以通过 MX 记录路由消息的完整邮件服务器或服务(这将发出并进入 O365 并被接受为外部消息)。SendGrid 是您可以使用的服务的一个示例。