本文介绍一下如何通过telnet,命令讲解, Powershell脚本,以及在线检测工具.对邮件服务器进行排错检测
首先,如果我们要查外部的邮件服务器,命令行 nslookup -q=mx contoso.com,如果是自己的邮件服务器就省去了这一步.

有服务器IP之后,再用最简单的telnet命令,telnet x.x.x.x 25 如果长时间没有反应,基本上,服务器要么停了,要么不开放.

一个正常的SMTP服务
如果我们要继续测试完整的命令完成一封邮件发送呢. 其实测试到helo就可以了.这里只是顺带把命令补全.实际中没有什么意义.
220 dc.lsm.local Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Tue, 28 Feb 2017 12:48:20 +0800
helo ## 通知服务器你要准备开始了,这里如果使用扩展ehlo会返回更多信息.
250 dc.lsm.local Hello [10.202.202.10] ## 服务器通知你没问题,请继续.
auth login ## 我们假设服务器需要帐号密码验证.请求服务器开始验证
334 VXNlcm5hbWU6 ##服务器返回 "Username:" Base64格式.下同
dXNlcg== ##输入用户名 user . 我这里已经用格式转换过
334 UGFzc3dvcmQ6 ##服务器返回 "Password:"
MTIzNDU2 ##输入密码
235 2.7.0 Authentication successful ##提示认证通过
mail from:[email protected]
250 2.1.0 [email protected] OK
rcpt to:[email protected]
250 2.1.5 [email protected]
data ##开始输入邮件数据
354 Start mail input; end with . ## 符号"." 结束邮件内容
from:"user"
to:"test"
subject:test message
hello
.
250 2.6.0 Queued mail for delivery ##提示邮件排队等候传递.
quit ## 使用些命令退出
221 2.0.0 dc.lsm.local Service closing transmission channel ## 提示传输通道关闭.
非常繁琐的命令之后,一封邮件就产生了.
如果我们要用命令行检查pop3我们同样也可以利用telnet 服务器IP 110

一个正常的POP3服务
+OK Microsoft Windows POP3 Service Version 1.0 <[email protected]> ready. ##服务正常
user [email protected] ## 命令+用户名
+OK
pass 123456 ##命令+密码
+OK User successfully logged on ## 验证通过
list ##查看邮件.
+OK 0 messages (0 octets)
为什么要介绍命令行呢,相比较在线测试或者批处理脚.我们顺手就可以输入命令.讲究的是随手可得.
下面介绍一下powershell命令, ps就不多作介绍,已经完全取代msdos.
Powershell脚本1: 剪掉 ##注释,复制到powershell ISE 或 存成ps1运行
$EmailFrom = "[email protected]" ##发件人
$EmailTo = "[email protected]" ##收件人
$Subject = "Test123" ##邮件主题
$Body ="tttttttttttttttttttttttttt" ##邮件正文
$SMTPServer = "192.168.111.111" ## 邮件服务器
$SmtpServerPort)="25" ## 根据需要修改端口.25为默认,587为加密
$SMTPClient.EnableSsl = $true ##如果启用SSL加密保留些行,否则删掉.或改成 $false
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer,$SmtpServerPort) ##调用.net命令.勿修改些行内容.
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("admin","1234567"); ##调用.net命令 提供帐号密码
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body) ##发送
Powershell脚本2, 一行命令完成测试.不要断行, 如果显示不美观 自己加 ` 符号换行.esc下面那个键.
Send-MailMessage -From "发件人" -Subject "主题" -To "收件人" -body "正文" -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8) -Port "端口" -SmtpServer "服务器" -UseSsl "是否启用SSL,不启用就去掉" -Credential 用户名
运行后弹出窗口输入密码既可完成测试
mxtoolbox.com,是一个本人使用非常久的邮局在线检测网站,非常良心的一个外国网站.提供在线smtp test ,dns,mx,header分析,blacklist检测.与国内在线工具网站满屏的广告相关,真的是一股清流.