我使用QsslSocket
使用qt创建了一个邮件服务GUI,我将使用gmail帐户" smtp.gmail.com",465发送邮件,我希望它能够移植到{{1和附件发送邮件。
TCP套接字正在连接..但它不会发出QTCPsocket
信号。
我的代码或gmail服务器的问题是不支持tcp connect ..?因为readyRead()
它对我来说很好。
我的代码
QSSLSocket
答案 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。