iOS:发送带附件的电子邮件会自动添加另一个附加 (.txt) 文件

标签 ios email pdf uiview attachment

我正在使用以下代码发送包含 NSData 对象内容(变量名称:数据)的电子邮件:

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];

[controller setSubject:@"Subject"];
[controller addAttachmentData:data mimeType:@"application/pdf" fileName:@"Attachment"];
[controller setMessageBody:@"Please find attached the connections for..." isHTML:NO];

controller.mailComposeDelegate = self;
[self presentModalViewController:controller animated:YES];

它将生成为 pdf 的 UIView 添加为附件并发送电子邮件。一切都很好,除了一个问题:

当收到电子邮件以及附加的 pdf 时,还有另一个附加的 .txt 文件,其内容为:“从我的 iPad 发送”。如果我不附加 pdf,“从我的 iPad 发送”消息会出现在电子邮件正文中,而不是附件中。

有没有人知道如何解决这个问题?我不想在消息中附加文本文件。

问候,

彼得

最佳答案

似乎当您发送带有附件的电子邮件时,其中的所有内容 都被包装为多部分/混合消息,并且所有内容都编码为 Base64,包括消息正文和签名!所以它看起来像这样......

Content-Type: multipart/mixed;
    boundary="_003_81E0DB72B1F643FBAA40D9BCB66A11E4_"

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgTW9tIQ==

(即 "Hi Mom!" 编码为 Base64)

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_
Content-Type: application/octet-stream; name="MyAttachment.xlsx"
Content-Description: MyAttachment.xlsx
Content-Disposition: attachment; filename="MyAttachment.xlsx"; size=15262
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQA3Mb2RgAEAAIQFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC

截图

AF81AABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAANAA0AaAMAACA4AAAAAA==

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_

Content-Type: text/html; name="ATT00001.htm"
Content-Description: ATT00001.htm
Content-Disposition: attachment; filename="ATT00001.htm"; size=91
Content-Transfer-Encoding: base64

PGh0bWw+PGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiI+PGRpdj48L2Rpdj48ZGl2Pjxicj48YnI+U2VudCBmcm9tIG15IGlQYWQ8L2Rpdj48L2JvZHk+PC9odG1sPg==

(那是 <html><body bgcolor="#FFFFFF"><div></div><div><br><br>Sent from my iPad</div></body></html> 作为 Base64)

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_--

即使您转到设置 >> 邮件、联系人、日历并删除签名,您仍然会附加一个空的 HTML 文档。

正确的长期答案可能是将其作为错误提交给 Apple,然后等待。同时,如果这真的是一个 showstopper 错误,我建议您自己生成整个多部分/混合电子邮件正文,不带签名,看看这是否会让 MFMailComposeViewController 误以为电子邮件没有附件。就个人而言,我想我只是要告诉我的客户接受它。 :)

关于iOS:发送带附件的电子邮件会自动添加另一个附加 (.txt) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033801/

相关文章:

ios - 不能在 DelegateProxyType (rxSwift) 中使用 proxyForObject 函数

ios - 如何在Objective-C中解析JSONP?

python - 使用 Python 和 Pypdf2 从 pdf 中提取文本

php - 电子邮件内容中单词内的随机空格

PHP 获取一个脚本,该脚本将向数据库中的所有电子邮件发送新闻通讯

java - itext7 的 PdfReader 无法在 java 中运行

pdf - Mercurial和Word或PDF文档

ios - 使用 SpriteKit 的 Swift Gamecenter Leaderboard Done 按钮不起作用

ios - Swift:去除 Spritekit 中不同场景的广告

javax.mail.MessagingException : 530 5. 7.57 SMTP;客户端未通过身份验证,无法在 MAIL FROM 期间发送匿名邮件