email协议之:SMTP协议

阅读更多

SMTP (Simple Mail Transfer Protocol)协议:

        可以保证电子邮件的可靠和高效传送。TCP/IP 协议的应用层中包含有SMTP协议,但事实上它与传输系统和机制无关,仅要求一个可靠的数据流通道。它可以工作在TCP上,也可以工作在NCP, NITS ,X.25 Transport service等协议上。在TCP上,它使用端口25进行传输。

LINUX使用TELNET,TCP端口25,如下操作连接SMTP服务器,具体的服务器很多,可以用QMAIL等。

S: 220 foo.com Simple Mail Transfer Service Ready

      C: EHLO bar.com

      S: 250-foo.com greets bar.com

      S: 250-8BITMIME

      S: 250-SIZE

      S: 250-DSN

      S: 250 HELP

      C: MAIL FROM:

      S: 250 OK

      C: RCPT TO:<@foo.com:[email protected]>

      S: 250 OK

      C: DATA

      S: 354 Start mail input; end with .

      C: Date: Thu, 21 May 1998 05:33:29 -0700

C: From: John Q. Public

      C: Subject:  The Next Meeting of the Board

      C: To: [email protected]

      C:

      C: Bill:

      C: The next meeting of the board of directors will be

      C: on Tuesday.

      C:                         John.

      C: .

      S: 250 OK

      C: QUIT

      S: 221 foo.com Service closing transmission channel

分解:EHLO:client向server打招呼,server清空缓冲和state table,向客户端发消息,表示可以接受。

上述为简单方式,如果需要认证,采用如下向验证邮件服务器发送邮件的过程:
HELO localhost
auth login
Y29zdGFAYW1heGl0Lm5ldA 用户名(base64)
Y29zdGFAYW 密码(base64)
mail from:[email protected]  来自哪里
rcpt to:[email protected] 发给谁
data
输入信体内容。回车.结束

mail from:   envelope中的发件人

rcpt to:  envelopse中的收件人

DATA:发送message内容,包括email的所有,共2部分:message head ,message body!

quit: 不用说了吧。。。。

你可能感兴趣的:(C,C++,C#,应用服务器,Linux)