smtp用QTcpSocket发送邮件

时间:2014-04-09 08:43:53

标签: qt qtnetwork

我使用QsslSocket使用qt创建了一个邮件服务GUI,我将使用gmail帐户" smtp.gmail.com",465发送邮件,我希望它能够移植到{{1和附件发送邮件。 TCP套接字正在连接..但它不会发出QTCPsocket信号。

我的代码或gmail服务器的问题是不支持tcp connect ..?因为readyRead()它对我来说很好。

我的代码

QSSLSocket

1 个答案:

答案 0 :(得分:0)

您需要更仔细地研究ESMTP协议。仅选择QTcpSocket或QSslSocket然后连接到服务器是不够的。

对于安全连接,您需要使用QSslSocket不安全方式连接到端口,执行标准SMTP问候语,然后检查支持的VERBS。如果支持STARTTLS,则可以启动安全连接,否则,必须按照普通SMTP使用不安全连接。

如果允许安全连接,则发送" STARTTLS"命令到SMTP服务器,然后,当您收到220回复时,请使用值QSslSocket::setProtocol()来呼叫QSsl::TlsV1_0,然后QSslSocket::startClientEncryption()

收到QSslSocket::encrypted()信号后,您必须重复问候流程,然后继续进行正常的SMTP会话。

有关协议的更详细说明,请参阅RFC 3207