使用 Windows(2008)是否有一个简单的命令行工具,我可以使用它从服务器发送测试电子邮件来测试 SMTP、用户身份验证、端口等...而无需自己编写?
答案1
您最好、最简单且最全球可用的工具:远程登录
- 在命令提示符下,输入:telnet mail.mailserver.com 25
- 键入 EHLO,然后按 ENTER。
键入 AUTH LOGIN。服务器将以加密提示形式响应您的用户名。
输入以 base 64 加密的用户名。您可以使用多种可用工具之一来对您的用户名进行编码。
服务器将以加密的 Base 64 格式提示您输入密码。请输入以 Base 64 格式加密的密码。
键入 MAIL FROM:,然后按 ENTER。如果发件人无权发送邮件,SMTP 服务器将返回错误。
键入 RCPT TO:,然后按 ENTER。如果收件人不是有效收件人或服务器不接受此域的邮件,则 SMTP 服务器将返回错误。
输入 DATA。
如果需要,请键入消息文本,按 ENTER,键入句点 (.),然后再次按 ENTER。
如果邮件工作正常,您应该会看到类似以下的响应,表明邮件已排队等待递送:
250 2.6.0[电子邮件保护]。
答案2
对我来说,最简单的方法是使用发送邮件消息在 Powershell 中。从 Powershell 控制台只需运行:
PS C:\Users\admin> Send-MailMessage -SMTPServer smtp.domain.com -To [email protected] -From [email protected] -Subject "This is a test email" -Body "Hi, this is a test email sent via PowerShell to test the STMP relay server"
可以在这里找到更多选项关联:
答案3
如果您偶尔需要测试一下,或者只是测试少量的 SMTP 服务器,那么 telnet 可能是最方便的工具,这一点已经有人指出了。telnet 的最大优点在于它几乎是一个通用工具,它不仅允许您测试 SMTP 服务器,还允许您测试其他服务,如 POP、IMAP 等。
但是,如果你定期或大规模地进行此类测试,我强烈建议你使用斯瓦克斯。它使用起来非常简单,还可以执行其他任务,如发送附件(这对于测试您的邮件内容过滤器很有用)。
它还会为您提供有用的退出代码,以便您甚至可以使用它来执行自动化测试。
我经常在 Linux 上使用它,但作为一个 Perl 脚本,您应该能够在 Windows 系统上毫无问题地运行它。
答案4
通过 Telnet 连接到端口 25 并手动发出 SMTP 命令通常可以达到此目的。