关于TCPClient验证Email是否存在的问题

zj25810 2016-05-11 04:43:43
最近在做一个EDM客户端,需求上有一个点击批量发邮件的。
然后后台需要添加一条是否发送成功的数据,就类似于一个日志的东西吧。
真心没弄过,这次连winform都算是第一次接触,各种为难。
网上找资料,找到了一套这样的写法。

private void SendEmail(){
string _smtp = "b2bmail1.bjx.com.cn";

IPHostEntry hostEntry = Dns.GetHostEntry(_smtp);
IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 25);
using (TcpClient tcpc = new TcpClient())
{
tcpc.Connect(endPoint);

if (OperaStream(tcpc, "MAIL FROM:" + _smtp) != "250")
{
Success = "MAIL命令不能完成,SMTP服务需要验证";
OperaStream(tcpc, "QUIT");
}
if (OperaStream(tcpc, "RCPT TO: " + item.Email) != "250")//这边的item.Email,我代入了两个值,一个自己的QQ邮箱,一个1@qq.com(这个邮箱在QQ邮箱里发件是验证了此邮箱无效的)。
{
Success = item.Email + "此邮件地址并非有效";
OperaStream(tcpc, "QUIT");
}
}
}


public string OperaStream(TcpClient tcpc, string strCmd)
{
try
{
Stream TcpStream;
strCmd = strCmd + "/r/n";
TcpStream = tcpc.GetStream();
byte[] bWrite = Encoding.Default.GetBytes(strCmd.ToCharArray());
TcpStream.Write(bWrite, 0, bWrite.Length);
StreamReader sr = new StreamReader(tcpc.GetStream(), Encoding.Default);
string rl = sr.ReadLine();
string sp = rl.Substring(0, 3);
return sp;

}
catch (Exception ex)
{

throw;
}
}

不管我的item.Email是不是有效邮件地址,return sp;的返回值都是220,220到底是什么意思?求教育。

...全文
234 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj25810 2016-05-12
  • 打赏
  • 举报
回复
懂了懂了,思维钻进死胡同了!这两天一直在找一个有效的验证方法,看来只是我想多了。
  • 打赏
  • 举报
回复
QQ邮箱测试给1@qq.com发件会提示该邮箱不存在,但是用sina邮箱给1@qq.com发件是提示发送成功的 自家的东西总是要有点特权的吧
zj25810 2016-05-12
  • 打赏
  • 举报
回复
就是说一般没有这种不用收件人验证就能测试邮件地址是否存在的方法是吗? 类似于QQ邮箱那样的,他也只是在自己的数据库里面查一遍该邮箱是否存在? 因为我在QQ邮箱测试给1@qq.com发件会提示该邮箱不存在,但是用sina邮箱给1@qq.com发件是提示发送成功的。
  • 打赏
  • 举报
回复
要验证邮件地址是否正确,都是需要向那个邮箱发封确认邮件,这个邮件包含一个点击链接,由那个链接来进行最终验证
  • 打赏
  • 举报
回复
http://www.360doc.com/content/11/1021/11/4007071_157926239.shtml 220指的是服务器已经ready,这是验证服务器是否正常的,不是验证邮件是否正确的
zj25810 2016-05-12
  • 打赏
  • 举报
回复
Rajesh_James 2016-05-12
  • 打赏
  • 举报
回复
楼主可以看看封装好的Mail 类, System.Net.Mail

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧