SMTP协议的使用

简介

        SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,尽管邮件服务器可以用SMTP发送、接收邮件,但是邮件客户端只能用SMTP发送邮件,接收邮件一般用IMAP 或者 POP3 。邮件客户端使用TCP的25号端口与服务器通信。

        SMTP在1982年首次被定义在  RFC 821 ,在2008它被更新为扩展的SMTP协议,补充在文件 RFC 5321 ,扩展的协议是目前使用最广泛的协议。

SMTP通讯描述

        当用户需要发邮件时候,邮件发送者(sender-SMTP)建立一个与邮件接收者(receiver-SMTP)通信的通道,发送者发送SMTP命令给接收者,接收者收到后对命令做回复。

        通信通道被建立后,发送者发送 MAIL 命令来指定发送者的邮件,如果接受者接收这个邮件,就回复 OK ,接着发送者发送 RCPT命令来指定接收者的邮箱,如果被接收同样回复OK,如果不接受则拒绝(不会终止整个通话)。接收者邮箱确定后,发送者用DATA命令指示要发送数据,并用一个 .  结束发送。如果数据被接收,会收到OK ,然后用QUIT结束会话。

 常用命令

1 telnet smtp.sina.com 25  // 链接到smtp服务器
2 ehlo                     // 链接成功,向服务器发送任意字符,确认链接
3 AUTH                     // 加参数login,回车后输入base64编码后的账号和密码,登录SMTP
4 mail from:               // 开始新的邮件事务,加发送者邮箱参数
5 rcpt to:                 // 参数接收者邮箱,添加多个邮箱,可多次执行此命令
6 data                     // 开始编写邮件,“”.“” 为结束编写并提交到SMTP服务。
7 .                        // 结束邮件编写
8 quit                     // 断开连接

使用示例

telnet smtp.sina.com 25                                //1 telnet
Host 'smtp.sina.com' resolved to 123.126.45.161.
Connecting to 123.126.45.161:25...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
220 smtp-97-23.smtpsmail.fmail.bx.sinanode.com ESMTP
ehlo cup                                              //2 ehlo
250-smtp-97-23.smtpsmail.fmail.bx.sinanode.com
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-STARTTLS
250 8BITMIME
AUTH LOGIN                                            //3 AUTH
334 VXNlcm5hbWU6
bmaaaaaaaaaaaaaaaxxxxxxxxQ==                          //4 编码后的邮箱登录账号
334 UGFzc3dvcmQ6
Maaaaaaaaaaaaaaaaaaaaaa                               //5 编码后的邮箱登录密码
235 OK Authenticated
mail from: <xxxxxxxxxx@sina.com>                      //6 mail from: <>
250 ok
rcpt to: <xxxxx@qq.com>                               //7 rcpt to: <>
250 ok
data                                                  //8 data
354 End data with <CR><LF>.<CR><LF>            
From: xxxxxxxxxx@sina.com (我是谁发送的)               // 输入内容开始
To: xxxx@sina.com         (我是发送给谁)
Cc: xxxxxx@qq.com         (我是抄送) 
subject:   xxxxx          (我是主题)
(这里要有一个空行)
Hello, nercis.
This is a test message.

....                                                  // 内容结束
.                                                     //9 . 提交
250 ok queue id 91604954919510
quit                                                  //10 quit
221 smtp-97-23.smtpsmail.fmail.bx.sinanode.com
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(smtp.sina.com:25) at 15:33:53.

C++代码示例

libcurl代码示例

详细参考:

SMTP协议详解

c++和telnet操作

c++操作,复杂版

用telnet命令,SMTP发送邮件

配置SMTP服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_虚竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值