检查

2016-08-15 42 views
1

基本上我必须输入cmd.exe运行在C#下面的命令(如果你在CMD运行它,它会工作) 此link解释更好检查

nslookup -type=mx emailProvider.com //for exemplo nslookup -type=mx hotmail.com.com 

后它retun这样的:

Server: ip-172-31-0-2.sa-east-1.compute.internal 
Address: 172.31.0.2 

Non-authoritative answer: 
hotmail.com  MX preference = 5, mail exchanger = mx1.hotmail.com 
hotmail.com  MX preference = 5, mail exchanger = mx2.hotmail.com 
hotmail.com  MX preference = 5, mail exchanger = mx3.hotmail.com 
hotmail.com  MX preference = 5, mail exchanger = mx4.hotmail.com 

,所以我需要一些邮件交换器,用于exemplo:

telnet mx1.hotmail.com 25 //port 25 

后我NEDD为exemplo写 “HELO”:

HELO 

所以finilly我写:

mail from:<[email protected]> 
rcpt to:<[email protected]>//email verificate 

所以它返回一个数字,250或550,如果250邮箱不存在,否则它的存在

我试图使用minimalistic Tel net,我试过进程写入行的命令窗口 但没有这方面的工作的,它只是HELO工作之前,当我写HELO它不工作 ,但它的工作对CMD

有些人可以帮我吗?

对不起我的英文不好

谢谢!

+1

“当我写helo它不起作用” 不工作就像它会引发异常?格式化您的硬盘驱动器?偷你女朋友? :) 你可以说得更详细点吗?你期望*会发生什么,实际发生了什么。 – aquinas

+0

返回任何东西,基本上我想这样做[链接](https://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-一个电子邮件/),但在C# –

+0

有特殊的SMTP命令'VRFY'为此目的。在较新的SMTP版本中,它被拒绝,因为可用于垃圾邮件。 'VRFY史密斯',你得到的信息“我们有这样的账户”或不。 – i486

回答

1

好问题,贫困解决方案。

您正试图查询SMTP服务器以查看是否存在电子邮件。 我强烈建议你不要这样做,因为你的外部IP地址最终会在黑名单上,你将无法发送任何邮件!

您不需要调用外部telnet进程与SMTP服务器进行通信。您可以使用TcpClient实例。示例:thisthis