0

私は MFMaiilComposeViewController で電子メールを作成しています。いくつかの HTML スニペットを作成してメッセージ本文に割り当てるだけで、すべて問題ありません。結果の電子メール (GMail および Yahoo) は、私が送信した元の HTML のように見えます。

 [mailMan_ setMessageBody:body isHTML:YES];

一方、XML 添付ファイルも含めると、電子メール リーダーはすべてをプレーン テキストとしてレンダリングします。これには、インライン化された XML も含まれます。IE: 私のメール クライアント (GMail、Yahoo) は生の HTHML および XML タグを表示します - 私が提供しなかった html タグを含みます - つまり、iPhone がコンテンツの周りに提供する html、head、body タグ:

 NSData *opmlData = [[NSData alloc] initWithData:[opml dataUsingEncoding:NSUTF8StringEncoding]];
 NSString *fileName = [NSString stringWithFormat:@"%f.opml", [NSDate timeIntervalSinceReferenceDate]];
 [mailMan_ addAttachmentData:opmlData mimeType:@"text/xml" fileName:fileName];

何が起こっているのかを確認するためにメールを pop3 したところ添付ファイルなしで、メールの結果の html セクションに次のブロックが含まれていることがわかりました。

--0-1682099714-1273329398=:59784
Content-Type: text/html; charset=us-ascii

<html><body bgcolor="#FFFFFF"><div><h2 style="b

一方、 XML添付ファイルを使用すると、iPhone は次のように送信します。

--0-881105825-1273328091=:50337
Content-Type: text/plain; charset=us-ascii

<html><body bgcolor="#FFFFFF"><div><h2 style="bac

違いに気づきましたか?Content-Type … text/ htmlと text/ plainを見てください。XML 添付ファイルを含めると、iPhone が誤って本文の HTML バージョンをプレーン テキストとしてタグ付けしているようです。技術的に明確にするために、アタッチメントの有無にかかわらず、iPhoneにはこれも含まれています。

--0-881105825-1273328091=:50337
Content-Type: text/plain; charset=us-ascii

Notebook
Carpentry
Bathroom floor tile
Bathroom wall tile
Scrape thinset

しかし、これは明らかに問題がある場所ではありません。

私は何か間違ったことをしていますか?iPhoneがHTML本体全体をプレーンテキストとしてラベル付けせずに、実際にXMLを「添付」するにはどうすればよいですか。割り当てを逆にしようとしましたが(最初に添付ファイル、次に本体)、うまくいきませんでした。

それだけの価値はありますが、メールは iPhone の送信インターフェイスから見ると完璧に見えます。実際、HTML は正しく表示され、添付ファイルはメッセージの下部にある小さなアイコンのように見えます。この問題は、iPhone が実際に送信しているものに関係しています。

4

1 に答える 1

0

結局のところ、この問題は Yahoo に固有のものです。

iPhone で、プロバイダを Yahoo アカウントではなく Gmail アカウントに変更すると、生成される電子メールにはより多くのセクションがあり、より具体的で、正しくレンダリングされます。

教訓 - iPhone から別のプロバイダー経由で添付ファイルを送信する場合は注意が必要です。

于 2010-05-08T17:52:21.117 に答える