Qt - SMTP协议

本文详细介绍了在Qt环境中使用SMTP协议发送邮件的过程,包括SMTP协议简介、工作流程、常用命令,以及发送邮件的步骤。同时,文章还讨论了在SMTP发送邮件时可能遇到的问题和解决方案,并对MIME协议进行了深入探讨,特别是MIME消息头字段如Content-Type的重要作用。
摘要由CSDN通过智能技术生成

1. SMTP协议简介

SMTP协议:全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则。

SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过telnet程序来测试一个SMTP服务器。SMTP使用TCP端口25。

2. 工作过程

SMTP协议的工作过程可分为如下3个过程:

(1)建立连接:在这一阶段,SMTP客户请求与服务器的25端口建立一个TCP连接。一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。

(2)邮件传送:利用命令,SMTP客户将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,SMTP服务器进行相应的响应并接收邮件。

(3)连接释放:SMTP客户发出退出命令,服务器在处理命令后进行响应,随后关闭TCP连接。

3. 常用命令

 SMTP 协议中一共定义了18条命令,但是发送一封电子邮件的过程通常只需要6条命令,我将这6调命令/响应的语法格式总结如下:

注意:SMTP命令不区分大小写,但参数区分大小写。<>内代表参数,<SP>是空格,<CRLF>代表\r\n

SMTP命令及格式 描述
EHLO <domain><CRLF> ehlo命令是SMTP邮件发送程序与SMTP邮件接受程序建立简介后必须发送的第一条SMTP命令,参数<domain>表示SMTP邮件发送者的名称(邮箱名)
AUTH <para><CRLF> 告诉SMTP服务器认证方式,参数para表示回应的认证方式,通常是AUTH LOGIN
MAIL FROM:<reverse-path><CRLF> 此命令用于指定邮件发送者的邮箱地址,参数reverse-path表示发件人的邮箱地址
RCPT TO:<forword-path><CRLF> 此命令用于指定邮件接受者的邮箱地址,参数forword-path表示发件人的邮箱地址,如果邮件要发送给多个接受者,那么应该使用多条RCPT TO命令来分别指定每一个接受者的邮箱地址
DATA<CRLF> 此命令用于表示SMTP邮件发送程序准备开始传送邮件内容,在这个命令后面发送的所有数据都将被当做邮件内容,直到遇到<CRLF>.<CRLF>表示符,则表示邮件内容结束
QUIT<CRLF> 此命令表示要结束邮件发送过程,SMTP邮件接受程序接收到此名后,将关闭与SMTP邮件服务器的连接

4. 发送邮件步骤

大家可能光看这些命令不太清楚,下面我总结了一下使用Smtp协议手工发送邮件的步骤:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值