MFMailComposeViewController添加了null Content-Id

时间:2010-06-23 09:41:31

标签: iphone

这是我给小组的第一篇文章,所以请善待:)

我从我的应用程序发送了几个音频附件,如下所示:

 MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
 picker.mailComposeDelegate = self;
 picker.modalPresentationStyle = UIModalPresentationCurrentContext;
 [picker setSubject:@"Test message"]; 
 NSArray *toRecipients = [NSArray arrayWithObject:@"foo@bar.com"];
 [picker setToRecipients:toRecipients];

 // multiple attachments are made as follows
  NSData *myData = [NSData dataWithContentsOfFile:filePath];
 [picker addAttachmentData:myData mimeType:@"audio/x-caf" fileName:fileName];

 [picker setMessageBody:@"test message" isHTML:NO];

 [controller presentModalViewController:picker animated:YES];

mailComposeController方法负责解雇模态视图。

不幸的是,当邮件被传递时,附件的mime标头将Content-Id设置为null。这是它的样子:

 Content-Type: audio/x-caf; name="audio_1.caf"
 Content-Transfer-Encoding: base64
 Content-Id: <(null)>
 Content-Disposition: attachment; filename="audio_1.caf"

如果我手动删除Content-Id字段并在我的Mac Mail程序(邮件版本3.6)中重新加载邮件,则附件会正确显示。换句话说,我真的不需要/希望将内容ID插入到mime头中。

另外,值得一提的是,出于调试目的,如果我将mime类型设置为“image / jpeg”,则mime标头会获得有效的Content-Id字符串。我的所有附件都显示在Mail中。正如所料,在这种情况下,附件无法在Mac或iPhone上正确打开。

非常感谢任何帮助。

感谢, apurva

2 个答案:

答案 0 :(得分:0)

根据这篇文章,您无法手动设置Content-ID

How to add a UIImage in MailComposer Sheet of MFMailComposeViewController

答案 1 :(得分:0)

行。想出来 - 比其他任何事情更偶然。

邮件服务器(不是我的app或MFMailComposeViewController)似乎插入了空内容ID。

最初我用个人雅虎帐户测试发送。那是我遇到问题的时候。当我切换到我的工作帐户时,问题就消失了。

感谢, apurva