[网络编程] 邮箱协议 SMPT 使用心得

如此简单的协议,被网上各路大神描述的都用不来了。先说说几个客户端常用命令:

HELO hostname: 与服务器打招呼并告知客户端使用的机器名字,可以随便填写
MAIL FROM: sender_id : 告诉服务器发信人的地址
RCPT TO: receiver_id : 告诉服务器收信人的地址
DATA : 下面开始传输信件内容,且最后要以只含有.的特殊行结束
RESET: 取消刚才的指令,从新开始
VERIFY userid: 校验帐号是否存在(此指令为可选指令,服务器可能不支持)
QUIT : 退出连接,结束


1. HELO 语句


这是网上的原文,其实很容易犯错,我就犯过如下错误:

1. HELO hostname: tester

2. HELO: tester

3 HELO tester:


但最后测试成功后才发现,其实用法很简单:

HELO hostname

红色字才是要用户自己填的,其他都不需要。

其中HELO hostname 的hostname是随便都行,没有要求的。

另外要注意的是,与SMTP服务器连接后,首先要使用 HELO 或 EHLO,注意大写哦。同时如果你是用 socket 给服务器发命令时,注意你的输入应该如下:

"EHLO test /r/n"  而不是 "EHLO test"。命令中不加 /r/n 会怎样? 我的血肉教训是收不到服务器的应答,也就是recv()函数收不到数据,然后就死等。为搞明白这个问题,一下午又浪费了。


2. AUTH 语句


用以下格式:

 1) 发送  "AUTH LOGIN\r\n"

  返回   334

 2) 再发直接发你连接的邮箱服务器的账号 useName, 注意这里需要用 base64 编码一下,记住在字符串的尾部要加“\r\n”  

  返回   334

 3) 再发直接发你连接的邮箱服务器的密码 password, 注意这里需要用 base64 编码一下,记住在字符串的尾部要加“\r\n”   

 返回   235 Authentication successful


2. MAIL FROM 语句


用以下格式:

  "Mail From :<xxx@162.com>\r\n"

 返回   250 OK

3. RCPT TO 语句


用以下格式:

  "RCPT TO:<xxx@162.com>\r\n"

返回   250 OK


4. DATA 语句


这个语句是告诉服务器,我要开始发邮件正文了。

用以下格式:

  "DATA \r\n"

返回   354 Start mail input; end with <CRLF>.<CRLF>

然后就可以发邮件的内容了。记住邮件最后以  /r/n./r/n  结束

返回 250 OK

这时邮件已经发出


5. QUIT 语句

用以下格式:

  "QUIT \r\n"

到这里,你的邮件就发出去了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值