我能够正确发送带有从我的 C++ 应用程序附加的 PDF 文件的 smtp 邮件。如果他们使用笔记本电脑或台式电脑,所有用户都可以从他们的邮件客户端下载 PDF 附件,但其中一些用户(大约十分之四的用户)如果尝试从他们的邮件中读取邮件,则无法下载附件。手机(它主要发生在 iPhone 上,但也发生在 Android 上)。
他们收到电子邮件文本并且能够看到有一个附件,但是该文件不可见并且他们无法打开它。
似乎附件被检测为病毒并被阻止。如果用户试图通过他的邮件客户端在他的笔记本电脑上打开同一封电子邮件,那么附件是可读的。
有什么办法可以解决这个问题吗?
我对 curl.exe 和 smtpclient 库都有同样的问题。
这是我目前使用的基于smtpclient library的代码。
SmtpClient smtp("smtp.gmail.com", 465, SmtpClient::SslConnection);
smtp.setUser("email@gmail.com");
smtp.setPassword("passwd");
// Create a MimeMessage
MimeMessage message;
EmailAddress sender("email@gmail.com", "name");
message.setSender(&sender);
EmailAddress to(email_recipient, ui->listautenti->currentText());
message.addRecipient(&to);
message.setSubject("example!");
// Add some text
MimeText text;
QString testo_della_mail = "Hello!";
text.setText(testo_della_mail);
message.addPart(&text);
// Now we create the attachment object
MimeAttachment attachment (new QFile(pdf_filename));
qDebug() << "Filename: " << pdf_filename;
// the file type can be setted. (by default is application/octet-stream)
attachment.setContentType("application/pdf");
// Now add it to message
message.addPart(&attachment);
msgBox.exec();
smtp.quit();