Назад | Перейти на главную страницу

Office 365 и JavaMail

Я пытаюсь отправить электронную почту с сервера, используя протокол JavaMail и smtp. Электронная почта: name@mydomain.com. 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

Вы не можете ретранслировать анонимно. Есть несколько вещей, о которых следует знать при работе с O365.

  • Вы должны подключиться к порту 587 (не 25)
  • Вы должны использовать TLS
  • Сначала вы должны пройти аутентификацию в службе
  • Вы должны использовать ту же учетную запись, с которой вы аутентифицируетесь, в адресе FROM.

Если вы не можете поддерживать это из приложения, вам может потребоваться настроить внутренний SMTP-ретранслятор, который может подключаться с этими параметрами, или использовать полный почтовый сервер или службу, которая может маршрутизировать сообщение через записи MX (это будет выходить и входить в O365 и приниматься как внешнее сообщение). SendGrid - это пример службы, которую вы могли бы использовать.