MFMailComposeViewController を使用して、HTML とフォールバック プレーン テキスト バージョンの両方の電子メールを送信するにはどうすればよいですか? API には、メッセージ本文をいずれかまたは両方として設定する方法がありますが、両方を指定する方法はありません。他のアプリ (Doodle Jump など) でそれを行っているのを見たことがあるので、可能であるに違いありません。
3 に答える
コードと Google の両方でかなりの調査を行った結果、MFMailComposeViewController を介してこれを行うことはできないという結論に達しました。誰かに私が間違っていることを証明してもらいたいので、そうでないことがわかった場合は、喜んで回答に投票します.
私はこれを試していないので、推測しかできません。
ドキュメントには、 setMessageBody:isHTML: への呼び出しが前の本文を置き換えると記載されています。ドキュメントが不安定な場合に備えて、1 つは isHTML:YES で、もう 1 つは NO で、2 つの呼び出しを試す価値があります。
境界が一定である場合 (そうであることを願っています)、それを行う方法は、それを HTML として送信し、プレーン テキスト部分を最後まで偽造することです。自分自身に HTML メールを 1 通または 3 通送信して、境界が一定であることを確認し、それを取得する必要があります。次に追加
------=_NextPart_111_2222_11223344.aabbccdd コンテンツ タイプ: テキスト/プレーン。 charset="iso-8859-1" コンテンツ転送エンコーディング: 8bit 平文コンテンツ
NextPart のものを実際の境界に置き換えます。境界が一貫していない場合、私にはわかりません:-)試してみる価値はありますか?
これは私がやっていることです。出力は問題ありません。画像を添付できません。それ以外の場合は、皆さんにお見せしたいと思います
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];