1

setMessageBodyメールに本文を設定できる アプリを使用してメールを送信していますが、複数の画像とテキストを送信する必要があります画像のように

2回使用addAttachmentData すると2つの画像を送信できますが、テキスト画像テキスト画像を送信したいです。

Gmail で html を使用すると機能しません。そのように送信することはできますか?

MFMailComposeViewController *mailView= [[MFMailComposeViewController alloc] init];
            mailView.mailComposeDelegate=self;
            [mailView setSubject:@"ABCD"];
              [mailView setMessageBody:@"Hai" isHTML:NO];
            UIImage * emailimage = [UIImage imageNamed:@"Iconpaid.png"];
            NSData * emaildata = UIImageJPEGRepresentation(emailimage, 1.0);

          [mailView addAttachmentData:emaildata mimeType:@"image/png" fileName:@"File"];

           // Here i want to add text

          [mailView addAttachmentData:emaildata mimeType:@"image/png" fileName:@"File"];
            [mailView setToRecipients:[NSArray arrayWithObject:@""]]; //[NSArray arrayWithObject:appDelegate.mechanicEmail]];
            [self presentModalViewController:mailView animated:YES];
4

3 に答える 3

2

私は同じ問題を抱えており、答えを見つけました。次のリンクを参照してください

MFメール

テキストと画像、テキストと画像を簡単に設定できます。

この関数でメッセージ本文を設定します

     - (NSString *)messageBody
     {
         // if we couldn't fetch the app information, use a simple fallback template
         if (self.applicationSellerName==nil) {
             // Fill out the email body text
             NSMutableString *emailBody = [NSMutableString stringWithFormat:@"<div> \n"
                                  "<p style=\"font:17px Helvetica,Arial,sans-serif\">%@</p> \n"
                                  "<h1 style=\"font:bold 16px Helvetica,Arial,sans-serif\"><a target=\"_blank\" href=\"%@\">%@</a></h1> \n"
                                  "<br> \n"
                                  "<table align=\"center\"> \n"
                                  "<tbody> \n"
                                  "<tr> \n"
                                  "<td valign=\"top\" align=\"center\"> \n"
                                  "<span style=\"font-family:Helvetica,Arial;font-size:11px;color:#696969;font-weight:bold\"> \n"
                                  "</td> \n"
                                  "</tr> \n"
                                  "<tr> \n"
                                  "<td align=\"left\"> \n"
                                  "<span style=\"font-family:Helvetica,Arial;font-size:11px;color:#696969\"> \n"
                                  "Please note that you have not been added to any email lists. \n"
                                  "</span> \n"
                                  "</td> \n"
                                  "</tr> \n"
                                  "</tbody> \n"
                                  "</table> \n"
                                  "</div>",
                                  self.message,
                                  [self.appStoreURL absoluteString],
                                  self.applicationName
                                  ];

             return emailBody;

         }
于 2013-05-16T10:06:02.987 に答える
2

ビューのスクリーンショットを取得できます。次のコードを使用します。

UIView *totalContentView = [[UIView alloc] init];
[totalContentView setFrame:CGRectMake(0, 0, 320, 460)];
UIImageView *image1 = [[UIImageView alloc] init];
[image1 setFrame:CGRectMake(0, 0, 320, 200)];
[image1 setImage:[UIImage imageNamed:@"image1.png"]];
UILabel *textLabel = [[UILabel alloc] init];
[textLabel setBackgroundColor:[UIColor clearColor]];
[textLabel setFrame:CGRectMake(0, 200, 320, 50)];
[textLabel setText:@"Its working fine"];
UIImageView *image2 = [[UIImageView alloc] init];
[image2 setFrame:CGRectMake(0, 250, 320, 200)];
[image2 setImage:[UIImage imageNamed:@"image2.png"]];
[totalContentView addSubview:image1];
[totalContentView addSubview:textLabel];
[totalContentView addSubview:image2];
[self getAsImageForView:totalContentView forRect:CGRectMake(0, 0, 320, 460)];

getAsImageForView メソッドが続き、

-(UIImage *)getAsImageForView:(UIView *)view forRect:(CGRect)rect;
{
    UIGraphicsBeginImageContext(view.bounds.size);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGImageRef tmp = CGImageCreateWithImageInRect(image.CGImage, rect);//CGRectMake(240, 0, 240, 320)
    UIImage *cuttedImage = [UIImage imageWithCGImage:tmp];
    CGImageRelease(tmp);
    return cuttedImage;
}

画像を返します。この画像をメールに添付できます。

于 2013-05-11T06:09:28.670 に答える
1
[mailView addAttachmentData:emaildata mimeType:@"image/png" fileName:@"File"];

この行を使用して、このように追加できる画像の数を添付し、

[mailView setMessageBody:@"Hai" isHTML:YES];

isHTML=をYES作成して、添付ファイルとしてではなく本文にすべての画像を取得するようにします(埋め込み本文)

于 2013-05-13T05:33:40.390 に答える