25

私は、iOSの添付ファイルとしてではなく、メールの本文内に画像を追加するための最良の方法を見つけようとしています。

1)Appleは「addAttachment」関数を提供しており、ドキュメントには、コンテンツに画像を追加するにはこの関数を使用する必要があると書かれていますが、この関数を試し、メールを送信しました。ブラウザで確認すると、次のように受信されます。付属物。

2)次に、多くのブログでbase64エンコーディングを使用すると言われていますが、それも機能しません。画像は壊れたものとして送信されます。

だから友達、これを行うために利用可能な最良の解決策を見つけるために私を助けてください。

よろしくランジット

4

4 に答える 4

62

メール形式を HTML に設定します。このコードは私のアプリで正常に動作しています。

MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init];

NSString *htmlMsg = @"<html><body><p>This is your message</p></body></html>";

NSData *jpegData = UIImageJPEGRepresentation(emailImage, 1.0);

NSString *fileName = @"test";
fileName = [fileName stringByAppendingPathExtension:@"jpeg"];
[emailDialog addAttachmentData:jpegData mimeType:@"image/jpeg" fileName:fileName];

emailDialog setSubject:@"email subject"];
[emailDialog setMessageBody:htmlMsg isHTML:YES];


[self presentModalViewController:emailDialog animated:YES];
[emailDialog release];

スイフト5

import MessageUI

    func composeMail() {

        let mailComposeVC = MFMailComposeViewController()

        mailComposeVC.addAttachmentData(UIImage(named: "emailImage")!.jpegData(compressionQuality: CGFloat(1.0))!, mimeType: "image/jpeg", fileName:  "test.jpeg")

        mailComposeVC.setSubject("Email Subject")

        mailComposeVC.setMessageBody("<html><body><p>This is your message</p></body></html>", isHTML: true)

        self.present(mailComposeVC, animated: true, completion: nil)
    }
于 2012-08-31T07:24:17.767 に答える
1

- addAttachmentData を使用 - setMessageBody を使用して isHTML:true を設定

メール本文に手動で追加する必要はありません。APIがそれを処理します。

func postEmail() {
var mail:MFMailComposeViewController = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setSubject("your subject here")
var image = // your image here
var imageData = UIImageJPEGRepresentation(image, 1)
mail.addAttachmentData(imageData, mimeType:"image/jpeg", fileName:"Your Filename"
var emailBody = "<html><body><p>This is your message</p></body></html>"
mail.setMessageBody(emailBody, isHTML:true)

self.presentViewController(mail, animated: true, completion:nil)}
于 2016-10-03T06:18:01.727 に答える