[решено] Думаю, мне нужен RTFM! Использование [MFMailComposeViewController addAttachmentData: mimeType: fileName:] полностью решило мою проблему. Нет необходимости в кодировке base64 вообще:)
Для тех, кому интересно , этот вопрос предоставляет полезную информацию о кодировке base64.
Я разрешаю пользователю взять или выбрать изображение и прикрепить его к электронному письму. Письмо отправляется и доставляется в Mac Mail на отлично, но в Windows (Outlook Express и gmail) изображение не отображается. Gmail сообщает мне: «Конверсия не может быть загружена».
Ниже приведен код, который я использую, чтобы прикрепить изображение к электронному письму. Это должно быть связано с кодировкой изображения. Кто-нибудь может посоветовать?
Большое спасибо за любую помощь
- (void) createEmail {
// set up the image data.
NSData *imageData = [NSData dataWithData:UIImageJPEGRepresentation(self.imageToUpload, 1.0)];
NSString *base64String = [imageData base64EncodedString];
NSString *emailBodyString = [NSString stringWithFormat:@"<html><body><img src='data:image/jpeg;base64,%@'></body></html>",base64String];
// create the email modal
NSArray *recipients = [[NSArray alloc] initWithObjects:@"test@email.com",nil];
MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init];
emailDialog.mailComposeDelegate = self;
[emailDialog setToRecipients:recipients];
[emailDialog setSubject:@"Time Sheet Submission from iPhone App"];
[emailDialog setMessageBody:emailBodyString isHTML:YES];
[self presentModalViewController:emailDialog animated:YES];
[emailDialog release];
[recipients release];
}