使用Windows(2008)是否有一个简单的命令行工具,我可以使用从服务器发送testing电子邮件来testingSMTP,用户身份validation,端口等,而不写我自己的?
您最好,最简单,最全球化的工具: telnet
inputAUTH LOGIN。 服务器以您的用户名的encryption提示响应。
input以base 64encryption的用户名。您可以使用几种可用于编码用户名的工具之一。
服务器以encryption的base 64提示input密码。 input以64为底的encryption密码。
键入MAIL FROM:,然后按Enter。 如果发件人不被允许发送邮件,SMTP服务器将返回一个错误。
键入RCPT TO,然后按Enter键。如果收件人不是有效收件人或者服务器不接受该域的邮件,则SMTP服务器将返回错误。
键入DATA。
如果需要,键入消息文本,按ENTER,键入句点(。),然后再按ENTER键。
如果邮件正常工作,您应该看到类似于以下内容的响应,表示邮件正在排队等待传递:
250 2.6.0 [email protected]。
部分从MS Technet文章中引用
对我来说,最简单的方法是在Powershell中使用Send-MailMessage 。 从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"
加载更多的选项可以在这个链接find:
如果这是你偶尔需要testing的东西,或者只是less量的SMTP服务器,那么telnet可能是最方便的工具,正如已经指出的那样。 关于telnet的最好的事情是它几乎是一个通用的工具,它不仅可以testingSMTP服务器,还可以testingPOP,IMAP等其他服务。
但是,如果你正在进行定期或更大规模的testing,我强烈推荐使用swaks 。 它非常易于使用,还可以执行其他任务,如发送附加文件(这可以用于testing您的邮件内容filter)。
它也会给你有用的退出代码,这样你甚至可以使用它来执行自动化testing。
我经常在Linux上使用它,但作为一个Perl脚本,你应该可以在Windows上运行而不会有任何问题。
如果您不想手动运行整个SMTP事务,则可以使用命令行工具(如blat)发送电子邮件。
Telnet到端口25并手动发送SMTP命令通常可以达到这个目的。