软件课设要求做一个windows下的邮件管理客户端,基本功能:收发邮件。。楼主渣渣一枚,没经验,只能苦逼地在黑暗中摸索摸索摸索摸索......了。今天了解了一下SMTP协议是个什么玩意,照着网上test了一遍Telnet远程登录SMTP服务器发邮件。对代理发邮件过程的理解算有一点点提高吧。
test过程:
1.确认电脑打开了Telnet的功能,在控制面板->程序->程序和功能->打开或关闭windows功能,勾选Telnet客户端。
2.进入cmd命令行,输入Telnet
3.输入 o smtp.qq.com 25 #此处o是open的缩写,以QQ邮箱为例,25表示SMTP服务器时刻监听的端口号,登录SMTP服务器
4.输入HELO hiboy #HELO表示向服务器打招呼,后面内容不限
5.服务器返回 250 smtp.qq.com #表示认可了你的身份
6.输入auth login #告诉服务器你要登录
7.服务器返回334 VXN1cm5hbWU6 #这一串字符串表示“Username:”这是base64码
9.输入密码对应的base64码
10.服务器返回235 Authentication successful #表明身份认证成功可以发邮件了
12.服务器返回250 mail ok
14.服务器返回250 mail ok
15.输入data开始输入邮件内容
16.from:xxx #表示发件人
17.to:xxxx #表示收件人,可以有多个
18.subject:xxxxxxx #输入邮件主题,需要空格一行才开始输入19正文
19.you are a good boy
20.回车以"."结束
21.服务器返回250 mail ok queued as #表示放入队列中了等待发送,这时候收件人就能收到了。楼主实验的时候收到了但是被腾讯给屏蔽了,看不到内容。
22.quit断开连接
23.221 Bye
SMTP的基本命令集:
HELO 向服务器标识用户身份
MAIL 初始化邮件传输mail from: <xxx>
RCPT 标识单个的邮件接收人;常在MAIL命令后面可有多个rcpt to: <xxx>
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,初始化数据传 输,以.结束
NOOP 无操作,服务器应响应OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间
了解这个过程后觉得写代码实现有点头绪了有木有。