1

画像を添付してHTMLをオンにしたメールを送信しようとしています。問題は、HTMLがオンの場合、画像が添付ファイルとしてではなくインラインで表示されることです(私はGmailを使用しています)。

isHTML:NOを設定すると、画像はダウンロード可能な添付ファイルとして正しく表示されます。画像をHTMLメッセージ付きの添付ファイルとして送信するにはどうすればよいですか?

NSData *imageAttachment = UIImageJPEGRepresentation(myUIImage,1);

MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
[mailView setSubject:@"My Email Subject!"];
[mailView addAttachmentData:imageAttachment mimeType:@"image/jpeg" fileName:@"imageAttachment.jpg"];
[mailView setMessageBody:messageBody isHTML:YES];

ありがとう〜!!

4

2 に答える 2

0

画像を添付する方法は正しく、得られる結果も標準に達しています。

いずれにせよ、エンド ユーザー (Gmail を使用しているかどうかに関係なく) は添付ファイルを取得する必要があります。

たとえば、Windows Live メールでは添付ファイルとして表示されますが、Mac OS でメールを使用すると、画像がインラインで表示されます。

于 2011-09-25T06:32:49.943 に答える
0

添付ファイルとして画像を追加する必要があります。HTML で表示されるレンダリングされた電子メールは、欠落している画像 URL では適切にレンダリングされません。

ここに例を示します: 注意点は、PDF などを含めたい場合は、画像を含める必要があるということです。そうしないと、mfmailcomposer が失敗します... これは Apple のバグです。

私は解決策を見つけました... 私はそれについてアップルのレーダーにバグを提出しました。MFMailcomposer には、pdf などの奇妙なアイテムを機能させるために、余分な添付ファイルと一緒に画像を送信する必要があるというバグがあります...これを試して、pdf をカードに置き換えてください。

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
NSString *emailSubject = [NSString localizedStringWithFormat:@"MedicalProfile"];
[controller setSubject:emailSubject];


NSString *fileName = [NSString stringWithFormat:@"%@.pdf", profileName];
NSString *saveDirectory = NSTemporaryDirectory();
NSString *saveFileName = fileName;
NSString *documentPath = [saveDirectory stringByAppendingPathComponent:saveFileName];  

*** YOU MUST INCLUDE AN IMAGE OR THE PDF ATTATCHMENT WILL FAIL!!!***
// Attach a PDF file to the email 
NSData *pdfData = [NSData dataWithContentsOfFile:documentPath];    
[controller addAttachmentData:pdfData mimeType:@"application/pdf" fileName:fileName];


// Attach an image to the email
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"miniDoc" ofType:@"png"];
NSData *imageData = [NSData dataWithContentsOfFile:imagePath];
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"doctor"];


[controller setMessageBody:[NSString stringWithFormat:@"%@'s Medical Profile attatched!", profileName] isHTML:NO];

[self presentModalViewController:controller animated:YES];
controller.mailComposeDelegate = self;
[controller release];
于 2011-12-29T04:34:52.650 に答える