(Qt)卷曲上传到smtp会发送一封空电子邮件

时间:2017-05-27 23:01:19

标签: c++ qt email curl

我正在使用Qt,我最近使用gmail创建了一个类似的应用程序。现在,我想将outlook中的电子邮件发送到gmail。 编辑:我刚尝试使用应用密码从outlook发送到Outlook,但在我的Outlook收件箱中仍然是空的电子邮件... END EDIT 这是我的代码:

if(file.open(QIODevice::ReadWrite)){  //Writes in the msg.txt
    QTextStream stream(&file);
    stream << "From: \"Me\" <xxxxxxxxxx@outlook.com>" << endl;
    stream << "To: \"Me\" <xxxxxxxxxxxx@gmail.com>" << endl;
    stream << "Subject: Subject" << endl;
    stream << msg << endl;  //msg is just a QString variable

}
QString cmd = "ccurl smtp://smtp-mail.outlook.com:587 -v --mail-from \"xxxxxxxxxxxx@outlook.com\" --mail-rcpt \"xxxxxxxxxxxx@gmail.com\" --ssl -u xxxxxxxxxxxxxx@outlook.com:xxxxxxxxxxxxxx -T \"msg.txt\" -k --anyauth --insecure & pause";
const std::string s = cmd.toStdString();
const char* ccmd = s.c_str();
system(ccmd);

暂停仅用于测试目的。此外,我的.exe名为'ccurl',出现的控制台不会抛出任何错误。我确实收到了一封电子邮件,但它只是说(空)

---
Email checked by avast....

感谢您的帮助!

聚苯乙烯。不要告诉我使用libcurl

1 个答案:

答案 0 :(得分:0)

在标题的结尾和邮件正文的开头之间缺少一个空行。没有它,消息的其余部分将被解释为它仍然是标题的一部分。

此外,endl强制在流中强制刷新,没有充分的理由,这会在文件上完成时杀死性能。只需使用\n即可。