2011-12-29 5 views

答えて

6

こんにちは私はこのコードを使用して添付ファイルイメージファイルを持っています。その作業コード。

- (void)createEmail { 
//Create a string with HTML formatting for the email body 
NSMutableString *emailBody = [[[NSMutableString alloc] initWithString:@"<html><body>"] retain]; 
//Add some text to it however you want 
[emailBody appendString:@"<p>Some email body text can go here</p>"]; 
//Pick an image to insert 
//This example would come from the main bundle, but your source can be elsewhere 
UIImage *emailImage = [UIImage imageNamed:@"myImageName.png"]; 
//Convert the image into data 
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(emailImage)]; 
//Create a base64 string representation of the data using NSData+Base64 
NSString *base64String = [imageData base64EncodedString]; 
//Add the encoded string to the emailBody string 
//Don't forget the "<b>" tags are required, the "<p>" tags are optional 
[emailBody appendString:[NSString stringWithFormat:@"<p><b><img src='data:image/png;base64,%@'> </b></p>",base64String]]; 
//You could repeat here with more text or images, otherwise 
//close the HTML formatting 
[emailBody appendString:@"</body></html>"]; 
NSLog(@"%@",emailBody); 

//Create the mail composer window 
MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init]; 
emailDialog.mailComposeDelegate = self; 
[emailDialog setSubject:@"My Inline Image Document"]; 
[emailDialog setMessageBody:emailBody isHTML:YES]; 

[self presentModalViewController:emailDialog animated:YES]; 
[emailDialog release]; 
[emailBody release]; 
} 
+1

こんにちは@parag、あなたのコード、doesntの仕事を、受信者に送信すると、壊れたメッセージとして配信されました。 – Ranjit

2

こんにちは私はiphoneで完全にコードの下にその作業を使用して仕事を持っており、iPadは、このコードを使用してattachaイメージファイルを持っている.I。その作業コード。

とiOS 3.0以降に直接iphoneに取り付け

UIImage * image = [UIImage imageWithContentsOfFile:imagePath]; 
[composer addAttachmentData:UIImageJPEGRepresentation(itemImage, 1) mimeType:@"image/jpeg" fileName:@"MyFile.jpeg"]; 
+0

これはOPが求めていたものです。もちろん、PNG(または他のタイプの画像形式)として送信したい場合は、適切なUIImageXXXRepresentation関数とimage/XXX MIMEタイプを使用する必要があります。 – hds

0

//添付ファイル追加するに画像を挿入します。私はによって確認された

//Create a string with HTML formatting for the email body 
NSMutableString *emailBody = [[NSMutableString alloc] initWithString:@"<html><body>"] ; 
//Add some text to it however you want 
[emailBody appendString:@"<p>Some email body text can go here</p>"]; 
//Pick an image to insert 
//This example would come from the main bundle, but your source can be elsewhere 
NSString *filePath = @"";/*you file path*/ 
//Convert the file into data 
NSData *attachmentData = [NSData dataWithContentsOfFile:filePath]; 
//Create a base64 string representation of the data using NSData+Base64 
NSString *base64String = [attachmentData base64EncodedString]; 
//Add the encoded string to the emailBody string 
//Don't forget the "<b>" tags are required, the "<p>" tags are optional 
[emailBody appendString:[NSString stringWithFormat:@"<p><b><img src='data:image/png;base64,%@'> </b></p>",base64String]]; 
//You could repeat here with more text or images, otherwise 
//close the HTML formatting 
[emailBody appendString:@"</body></html>"]; 
NSLog(@"%@",emailBody); 

//Create the mail composer window 
MFMailComposeViewController *email = [[MFMailComposeViewController alloc] init]; 
email.mailComposeDelegate = self; 
[email setSubject:@"My Inline Document"]; 
[email setMessageBody:emailBody isHTML:YES]; 

[self presentModalViewController:email animated:YES]; 
[email release]; 
[emailBody release]; 
+0

ファイルパスは、任意のドキュメントディレクトリパスまたはNSBundleパスです。ファイルは、image/pdf/attachmentです。上記のコードを実行するには、エンコーディングのためのbase64クラスを追加する必要があります。 – RajKrish

関連する問題