知识大全 支持ESMTP身份验证的邮件发送

Posted 内容

篇首语:恐惧自己受苦的人,已经因为自己的恐惧在受苦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 支持ESMTP身份验证的邮件发送相关的知识,希望对你有一定的参考价值。

支持ESMTP身份验证的邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使用 NET Framework下的System Net Mail SmtpClient可以很容易的实现邮件发送 但现在很多邮件服务器已经支持ESMTP协议 而ESMTP最大的区别在于发送时需要提供帐号密码做验证 ESMTP通过流的方式发送命令与服务器交互 完成邮件的发送与接受 更多关于SMTP的命令请参考 <>

  下面是一个简单的示例 (没有做任何判断与封装 仅供参考)

  代码

  string smtp = ;

  string from = ;

  string pwd = pwd ;

  string to = ;

  //建立链接

  TcpClient tc = new TcpClient(smtp );

  byte[] b = new byte[ ];

  tc GetStream() Read(b b Length);

  Response Write(Encoding UTF GetString(b)+ <br/> );

  //标识身份

  WriteMsg(tc GetStream() HELO xxxx\\r\\n );

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //身份验证开始

  WriteMsg(tc GetStream() AUTH LOGIN\\r\\n );

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //帐号 base 编码

  byte[] bTxt=new byte[ ];

  bTxt=Encoding UTF GetBytes(from);

  WriteMsg(tc GetStream() Convert ToBase String(bTxt)+ \\r\\n );

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //密码base 编码

  bTxt=Encoding UTF GetBytes(pwd);

  WriteMsg(tc GetStream() Convert ToBase String(bTxt) + \\r\\n );

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //身份验证结束

  //发送邮件地址

  WriteMsg(tc GetStream() string Format( MAIL FROM: \\r\\n from));

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //接受邮件地址 可以有多个RCPT TO

  WriteMsg(tc GetStream() string Format( RCPT TO: \\r\\n to));

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //初如化

  WriteMsg(tc GetStream() DATA \\r\\n );

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //邮件内容

  StringBuilder sb = new StringBuilder();

  sb AppendFormat( From: \\r\\n from);//发信人

  sb AppendFormat( To: \\r\\n to);//收信人 可以有多个 用分号隔开 这两行可以与上面的MAIL FROM和RCPT TO不同(显示在邮件内容里的)

  sb AppendFormat( Date: \\r\\n DateTime Now ToString());//时间

  sb AppendFormat( Subject: \\r\\n 测试 );//主题

  sb Append( \\r\\n );

  sb Append( 内容 ); //正文

  sb Append( \\r\\n \\r\\n );

  WriteMsg(tc GetStream() sb ToString());

  Response Write(ReadMsg(tc GetStream()) + <br/> );

  //结束会话

  WriteMsg(tc GetStream() QUIT );

  //关闭链接

  tc Close();

  如果运行正常 上面的返回状态依次为

   ESMTP CMailServer SMTP Service Ready

   wele here

   VXNlcm hbWU

   UGFzc dvcmQ

   OK

   OK

   OK

   send the mail data end with

cha138/Article/program/net/201311/13700

相关参考

知识大全 邮件发送组件

  先添加引入命名空间SystemNetMail  组件代码:  ///<summary>  ///邮件发送组件  ///</summary>  publicclassEmai

知识大全 java实现邮件发送

  要实现邮箱的发送需要一个已知账号和密码的邮箱并且开通了STMPPOP服务常见主流邮箱邮件收取和发送popstmp服务配置汇总介绍一文中详细介绍了各个邮箱开通服务的步骤  &nb

知识大全 java实现邮件的发送分享

  java实现邮件的发送分享方法如下  publicclassPopupAuthenticatorextendsAuthenticator  publicPasswordAuthentication

知识大全 .NET邮件发送

.NET邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSystem;&nbs

知识大全 Java发送邮件

Java发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  记得曾经学习用javamail发

知识大全 使用JavaMail 实现邮件发送

使用JavaMail实现邮件发送  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   im

知识大全 QQ三国会员 邮件发送附件能发送三国币吗拜托各位大神

QQ三国会员邮件发送附件能发送三国币吗拜托各位大神  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!QQ

知识大全 如何使用JSP来发送邮件

如何使用JSP来发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MESSAGEJSP  

知识大全 从asp.net页面发送电子邮件

  我们经常看到在一些博客页面里可以发表评论通过电子邮件通知版主(例如咱们的博客园)那么如何用发送电子邮件呢?我们可以借助NET提供的强大的类库达到目的  首先我们要引入SystemWebMail命名

知识大全 Spring整合Quartz定时发送邮件

Spring整合Quartz定时发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  功能描述