如何测试 SMTP 服务器?

sub*_*odh 6 postfix mail-server 14.04

我正在通过wormly.com测试我的 SMTP 服务器

当我做测试时,我最终得到

> SMTP -> FROM SERVER: 250 2.1.0 Ok RCPT TO: mygmailaddress@gmail.com
> SMTP -> FROM SERVER: 554 5.7.1 : Relay access denied SMTP -> ERROR:
> RCPT not accepted from server: 554 5.7.1 : Relay access denied
Run Code Online (Sandbox Code Playgroud)

消息发送失败。

我在此链接的帮助下设置了我的邮件服务器

Viv*_*oor 10

这是正确的消息,因为第三方网站正在连接到您的服务器并且无法向外部域发送电子邮件。

理想情况下,根据配置,如果您将电子邮件发送到您自己的域之一,则应将其发送。

如果您有一个开放的中继,这意味着接受任何域的电子邮件,那么这将是一个很大的安全风险,您的服务器很快就会被列入黑名单。它还可能会导致您的 ISP 出现问题以供滥用。

测试电子邮件服务器

如果您缺乏管理经验,我强烈建议您使用Mandrill.com 之类的服务来发送交易电子邮件,而不是设置自己的服务器。它可能弊大于利。

但是,根据您的评论,您需要设置并测试您的邮件服务器。这不是一项微不足道的任务,需要在各个级别进行测试。在基本级别尝试以下操作:

a) 创建一个虚拟域,并在该域内创建一个虚拟用户

b) 对您服务器的端口 25 执行 telnet 并向该域发送邮件,看看它是否已送达。您可以tail -f /var/log/mail.log -f从不同的控制台检查错误日志。使用 telnet 很容易

  telnet yourserver.com 25
  helo test.com
  mail from: <test@example.com>
  rcpt to: <youruser@yourdomain.com>
  data
  Type any content that you want, press enter, then put a period (.) and then enter to exit
  .
Run Code Online (Sandbox Code Playgroud)

现在通过错误日志检查电子邮件是否成功发送。完成后,您就会知道传入的邮件应该可以正常工作(前提是该域的 A 记录/MX 记录设置正确)。否则,根据错误,修复问题。

c) 现在通过 ssh 登录服务器,并使用 mail 命令发送电子邮件

  echo "Test Email from the new server" | mail -s "Test Subject" youruser@gmail.com
Run Code Online (Sandbox Code Playgroud)

最有可能检查 gmail 的垃圾邮件文件夹,如果一切顺利,它就会到达那里。这样您就可以查看外发电子邮件。

如果 Java Web 应用程序驻留在同一服务器上,那么您可以localhost在应用程序中用作电子邮件服务器。如果它在另一台服务器上,那么您可以在 中的mynetworks行下输入该服务器的IP地址,然后postfix/main.cf重新启动postfix,您可以在不进行身份验证的情况下发送电子邮件。

再一次,任何错误的配置都可能导致服务器的滥用,所以要小心。