2012-06-24 36 views
1

Gmail是否支持RFC 821?我知道它使用ESMTP。根据理解ESMTP是RFC 1869.但我必须使用RFC 821命令与C#并且想要测试它。如果Gmail不提供支持,是否有任何服务器为开发人员提供此服务?Gmail是否支持RFC 821?

预先感谢

回答

3

RFC1869定义了一组扩展 SMTP协议,一个服务器可以支持。除了RFC 821中描述的标准SMTP协议外。换句话说,任何支持RFC 1869的服务器都必须支持RFC 821.较新的标准明确地表明了这一点:

4.1。对STD 10的变更,RFC 821

本规范旨在扩展STD 10,RFC 821而不以任何方式影响现有服务。所需的小改动如下所列 。

如果一个客户端连接到这样的服务器发出标准HELO命令,它应该得到这充分说明SMTP服务器。但是,如果您需要使用任何SMTP扩展,则需要发出扩展命令EHLO,该扩展命令指示也可以使用RFC1869的客户端。

但是,仅仅因为服务器讲SMTP并不意味着它会说你与你。具体地说,服务器可能需要根据RFC 4954进行认证(例如,需要AUTH LOGIN或类似命令,或者用于加密通信的STARTTLS命令)。如果在发出命令之前未正确进行身份验证,则服务器可能会合法发送SMTP错误。虽然这个错误会是每个RFC 821的合法SMTP响应,但这可能不会对您有很大帮助。

+0

感谢..你是正确的,但我得到了这样的困惑,因为谷歌需要我们在发送AUTH PLAIN命令。也命令模式是有点different.I尝试正常的RFC 821命令,但它faild.Are AUTH PLAIN,EHLO RFC 821命令? – Thabo

1

RFC 1869(ESMTP)是RFC 821(SMTP)的改进版,不是单独的协议。您仍然可以将基本SMTP与ESMTP服务器交谈 - 事实上,ESMTP服务器需要支持它。

由于听起来您正在尝试构建与GMail SMTP互操作的内容,请记住,它不适用于桌面邮件客户端以外的任何其他应用程序。尝试通过GMail发送批量邮件将会非常糟糕。

1

几乎所有的互联网服务(连接)提供商(ISP)都为他们的客户提供SMTP服务器来发送电子邮件。您的ISP的帮助页面无疑解释了如何做到这一点 - 它可能提到类似smtp.comcast.net或smtp.whatver.net。

不过,它们很可能不会让您每天通过该端口发送超过一定数量的电子邮件。而且,他们当然不会让你通过它发送任何消息,除非你在网络上的一台机器上。

您也可以使用Gmail的smtp服务器。但是,为了做到这一点,您的客户端软件需要能够使用TLS,端口587和身份验证(使用您的gmail用户名和密码)。看到这里: http://support.google.com/mail/bin/answer.py?hl=en&answer=86374

这需要与smtp服务器进行身份验证和加密通信可能证明是一个相当痛苦的工作调试的脖子。最好找到一个开放的SMTP服务器,你可以用它来测试。

好消息:RFC821非常简单。

+0

谢谢....如果我使用TLS,我可以使用其他邮件服务器,这些邮件服务器仅支持RFC821?实际上,我正在为我的教育目的创建这个服务器。 – Thabo

+1

TLS是RFC821的扩展。如果您的任务是从头开发一个简单的RFC821客户端,请不要打扰TLS或身份验证;它们比电子邮件协议本身更难处理。 –