【问题标题】:Using MFMailComposeViewController to send both HTML and Plain Text versions of email使用 MFMailComposeViewController 发送 HTML 和纯文本版本的电子邮件
【发布时间】:2010-05-18 13:34:35
【问题描述】:

如何使用 MFMailComposeViewController 发送 HTML 和备用纯文本版本的电子邮件? API 有一种方法可以将消息正文设置为非此即彼,但不能同时指定两者。我已经看到其他应用程序这样做了(例如 Doodle Jump),所以它必须是可能的。

【问题讨论】:

  • 在仔细检查 Doodle Jump 的电子邮件后,MFMailComposeViewController 实际上通过去除 HTML 来自动创建纯文本电子邮件。如果我可以创建一个在纯文本中看起来不错的 HTML 版本,那也没关系。但是,它确实会导致一些奇怪的文本,例如“单击此处”类型的链接不是链接。
  • 哈哈。你知道吗 - 我昨天买了 doodlejump 只是为了检查它是否真的在使用 MFMailComposer。我没有检查输出邮件。爬山太忙了!

标签: iphone mfmailcomposeviewcontroller


【解决方案1】:

在对代码和使用 Google 进行大量调查后,我得出的结论是,通过 MFMailComposeViewController 无法做到这一点。我希望有人能证明我错了,所以如果你发现不是这样,我很乐意为你的答案投票。

【讨论】:

    【解决方案2】:

    我只能提供猜测,因为我没有尝试过。

    文档说调用 setMessageBody:isHTML: 替换之前的正文。值得尝试两次调用 - 一次调用 isHTML:YES,一次调用 NO,以防万一文档不可靠:但这不太可能。

    如果边界是恒定的(我希望是这样),我会说这样做的方法是将其作为 HTML 发送,并将纯文本部分伪造到最后。您需要向自己发送一封 HTML 电子邮件或 3 封电子邮件,并检查边界 是否 不变,然后抓取它。然后追加

    ------=_NextPart_111_2222_11223344.aabbccdd 内容类型:文本/纯文本; 字符集="iso-8859-1" 内容传输编码:8bit 纯文本内容

    用真实的边界替换 NextPart 的东西。 如果边界不一致,那么我不知道 :-) 也许值得一试?

    【讨论】:

    • 这是一个合理的猜测,我已经研究了这两种方法。第二个调用只是替换消息正文。边界也是由 Mail Composer 生成的,并且不是恒定的,所以我无法更改它。不过感谢您的回答!
    【解决方案3】:

    这就是我正在做的,输出很好,我无法附加图像,否则我会向你们展示

     NSString *emailBody = @"<HTML><BODY><B>It is raining in sunny California!</B><table><tr><td>row1</td><td>row2</td></tr><tr><td>row3</td><td><b>row4</b></td></tr></table></BODY></HTML>";
        [picker setMessageBody:emailBody isHTML:YES];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 2017-06-28
      • 2010-11-10
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多