[当服务器基于云时,哪个SMTP服务器将Java Mail发送到?

问题描述 投票:-1回答:1

这里是Java 8,尽管实际上我想这更多是一个通用的Exchange / SMTP问题。

我从GoDaddy购买了域名和Office 365支持,因此,通过它们有多个电子邮件地址。假设其中之一是[email protected]

我正在编写一个Java 8应用程序,它将允许用户(通过应用程序)向该支持地址发送电子邮件。我可能会使用出色的Simple Java Mail库,该库包装了Java Mail API。因此,在我的应用程序中的某处会有一些看起来像[[something的代码:

Email email = EmailBuilder.startingBlank() .to("MyApp Help Desk", "[email protected]") .withSubject("Support Ticket #12345") .withPlainText("Something went wrong inside the MyApp!") .buildEmail(); Mailer mailer = MailerBuilder .withSMTPServer("smtp.host.com", 587, "[email protected]", "password") .withTransportStrategy(TransportStrategy.SMTP_TLS) .withProperty("mail.smtp.sendpartial", true) .buildMailer(); mailer.sendMail(email);
很简单的东西,对吧?除了我对一件简单的事情感到困惑之外:

我在这里使用哪台SMTP服务器?我会使用GoDaddy帐户提供的Microsoft Exchange服务器,还是选择其他东西?

java-8 javamail exchange-server godaddy-api
1个回答
1
投票
这取决于您要做什么。

[如果只想尝试发送邮件,请连接到接受[email protected]邮件的邮件服务器。听起来这是Microsoft拥有的Office365服务器,它接受myapp.example.com的邮件。该域应该有公共DNS记录。我没有使用过简单Java邮件库,但是从您的伪代码中,我假定它为您执行DNS查找。

[有时会在尝试发送电子邮件时,应用程序遇到错误。例如,有人可以在smtp对话过程中重新启动您的应用服务器,或者重新启动路由器,或进行其他操作。使用诸如Exchange之类的邮件传输代理(MTA)来使此过程更加健壮是很常见的。如果MTA在第一次传递尝试时失败,它将在某些可配置的时间段内重试传递。就您而言,您可以将电子邮件发送到您的Exchange服务器,并将电子邮件路由到myapp.example.com。

((在这种情况下,Exchange有点像邮件提交代理(MSA),但是有点儿无用。)

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.