在 C++ 与安全规则中通过电子邮件发送附件

问题描述

我能够正确发送带有从我的 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();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)