QT高阶日记011

使用QTcpSocket实现从POP3服务器查询和收取邮件。

一是服务器地址:一般是POP3.域名.com,端口一般是110

要从POP3读取内容,就必须了解它的协议:

主要命令有

AUTH 认证请求

返回

+OK

NTLM

下在再通过返回的类型认证

AUTH NTLM

用户名验证码

密码验证码

返回+OK User successfally logged on 的信息

其他指令如下。

USER 用户名

PASS 密码

APOP 指定邮箱地址字串和MD5

STAT从服务器返回邮件数量和总字节数。

UIDL 返回邮件标识符。一邮件一号。是唯一的。

LIST返回邮件数量和每个邮件的大小

RETR n 返回指定邮件的全部文件内容

DELE将服务器邮件标志为删除。

RSET用于取消DELE的命令,取消邮件删除

TOP返回邮件前n行内容。

NOOP返回一个肯定的响应

QUIT结束会话

返回值开头包括一般两种

正响应,操作成功的响应

+OK

负响应,操作失败的响应

-ERR

操作完成以后,请用退出指令完成邮箱会话过程

QUIT

服务器返回

+OK 加多少字节的内容。

下面示例一下代码:

在pro里加

QT +=...... network

引用

#include<QTcpSocket>

先定义一个实例

QTcpSocket *pop3 = new QTcpSocket;

connect(pop3,&QTcpSocket::connected,this,-(){

//连接成功了

});

connect(pop3,&QTcpSocket::disconnected,this,-(){

//断开了

});

connect(pop3,&QTcpSocket::readyRead,this,-(){

收到了服务器信息

QByteArray backdata = pop3->readAll();

QString strdata = QString::fromLcal8Bit(backdata);

从而得到了服务器返回内容。

});

这时可以连接服务器了

pop3->abort();

pop3->connectToHost("POP3地址",端口号);

要发送的内容是这样的:

QString txt="要发的内容,包括结构化了的内容";

txt.replace("\n","\r\n").append("\r\n");确保要发的内容包括回车换行

QByteArray mess = QByteArray().append(txt);

最后

pop3->write(mess);

完成内容发送。

这是基本的收发pop3服务器内容的方法。对于整个邮件接收过程。需要按顺利的向服务器连接认证,登录 ,用户名,密码,请求邮清单,循环按序号1..n收件,处理邮件DATA标准内容。最后用QUIT结束。最后用

pop3->disconnectFromHost();来断开连接。整个流程就此结束。

相关推荐
Yunovian1 小时前
AI时代,针对模型与应用,浅谈一下各编程语言
开发语言·c++·人工智能·python·ai·rust·ai编程
周杰伦fans2 小时前
构建真正智能的CAD AI绘图代理
开发语言·人工智能·c#
Quz4 小时前
QML TreeView:排序与搜索过滤
qt
zhanghaha13144 小时前
Python进阶教程:35_PyQt (保姆级零基础教程)
开发语言·python·pyqt
Quz5 小时前
QML TreeView:基础树视图与自定义委托
qt
释厄6235 小时前
多黑洞具现论·物理/生物/金融三域显化·虚拟宇宙黑洞·奇点=0 圆圈
开发语言·数据结构·人工智能·程序人生·安全威胁分析
Fruit_Caller6 小时前
static
开发语言·c++
Junfeng的技术笔记11 小时前
基于 C++/Qt 的雷达回波信号检测与测距仿真系统
qt
Quz11 小时前
QML TableView:自定义样式与排序表格
qt
Quz11 小时前
QML TableView:可编辑表格与 SQLite 数据持久化
qt·sqlite