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<o:p></o:p>
C: EHLO bar.com<o:p></o:p>
S: 250-foo.com greets bar.com<o:p></o:p>
S: 250-8BITMIME<o:p></o:p>
S: 250-SIZE<o:p></o:p>
S: 250-DSN<o:p></o:p>
S: 250 HELP<o:p></o:p>
C: MAIL FROM:<[email protected]><o:p></o:p>
S: 250 OK<o:p></o:p>
C: RCPT TO:<@foo.com:[email protected]><o:p></o:p>
S: 250 OK<o:p></o:p>
C: DATA<o:p></o:p>
S: 354 Start mail input; end with <CRLF>.<CRLF><o:p></o:p>
C: Date: Thu, 21 May 1998 05:33:29 -0700<o:p></o:p>
C: From: John Q. Public <[email protected]><o:p></o:p>
C: Subject: The Next Meeting of the Board<o:p></o:p>
C: To: [email protected]<o:p></o:p>
C:<o:p></o:p>
C: Bill:<o:p></o:p>
C: The next meeting of the board of directors will be<o:p></o:p>
C: on Tuesday.<o:p></o:p>
C: John.<o:p></o:p>
C: .<o:p></o:p>
S: 250 OK<o:p></o:p>
C: QUIT<o:p></o:p>
S: 221 foo.com Service closing transmission channel<o:p></o:p>
分解: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:<user@domain> envelope中的发件人
rcpt to:<receiver@domail> envelopse中的收件人
DATA:发送message内容,包括email的所有,共2部分:message head ,message body!
quit: 不用说了吧。。。。