【计算机网络】:SMTP协议详解(如何在控制台发邮件)

SMTP的连接和发送过程

(a)建立TCP连接

(b)客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;

     服务器端正希望以OK作为响应,表明准备接收

(c)客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;

     服务器端则表示是否愿意为收件人接收邮件

(d)协商结束,发送邮件,用命令DATA发送

(e)以.表示结束输入内容一起发送出去

(f)结束此次发送,用QUIT命令退出

附上控制台的相关代码:

C: telent SMTP.163.com 25 //以telenet方式连接163邮件服务器 
S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后的为欢迎信息 
C: HELO SMTP.163.com //除了HELO所具有的功能外,EHLO主要用来查询服务器支持的扩充功能 
S: 250-mail 
S: 250-AUTH LOGIN PLAIN 
S: 250-AUTH=LOGIN PLAIN 
S: 250 8BITMIME //最后一个响应数字应答码之后跟的是一个空格,而不是'-' 
C: AUTH LOGIN //请求认证 
S: 334 dxNlcm5hbWU6 //服务器的响应——经过base64编码了的“Username”= 
C: Y29zdGFAYW1heGl0Lm5ldA== //发送经过BASE64编码了的用户名 
S: 334 UGFzc3dvcmQ6 //经过BASE64编码了的"Password:"= 
C: MTk4MjIxNA== //客户端发送的经过BASE64编码了的密码 
S: 235 auth successfully //认证成功 
C: MAIL FROM: [email protected] //发送者邮箱 
S: 250 … . //“…”代表省略了一些可读信息 
C: RCPT TO: [email protected] //接收者邮箱 
S: 250 … . // “…”代表省略了一些可读信息 
C: DATA //请求发送数据 
S: 354 Enter mail, end with "." on a line by itself 
C: Enjoy Protocol Studing 
C: . 
S: 250 Message sent 
C: QUIT //退出连接 
S: 221 Bye 

你可能感兴趣的:(邮件,网络,计算机,C语言,控制台)