我的应用程序发送了一封电子邮件,但有没有办法在我发送的文本上面放一张照片。有点像标题来显示我的标识。
答案 0 :(得分:2)
// Action for submenu Email Button
- (IBAction)emailButtonPressed {
[delegate playSound:@"Click_16"];
if (connectionStatus == YES)
{
if (maxCounter)
{
NSString *filename = (NSString *)[self currentImageObject:kSerialKey AtIndex:imageCounter];
NSString* documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
// set up image data for email
NSString *imageFile = [documentsDirectory stringByAppendingPathComponent:filename];
NSData *imageData = [NSData dataWithContentsOfFile:imageFile];
// set up mail view controller for message
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
if (controller != nil)
{
controller.mailComposeDelegate = self;
[controller setSubject:@"Email Subject"];
[controller setMessageBody:@"Check out this picture" isHTML:NO];
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:filename];
[self presentModalViewController:controller animated:YES];
}
[controller release];
}
else
[self genericAlert:@"There are no pictures to email."];
}
else
[self genericAlert:@"You are not connected to the internet. Please connect and try again."];
}
// email delegate method to dismiss window
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
[self becomeFirstResponder];
[self dismissModalViewControllerAnimated:YES];
}
答案 1 :(得分:1)
使用MFMailComposeViewController附加图像时,消息底部(在您的文本下,但在签名上方)显示始终,并且在当前版本的框架中无法更改
但是,可以将图像数据编码为base64,并将其直接放在应用的HTML正文中。我不会在这里包含代码(你可以轻松地谷歌),因为这并非常棘手且有问题,因为并非所有读者都能正确理解这一点。
如果这是一个对所有电子邮件都相同的标题图片,您可以将其放在某处的服务器上,然后在HTML电子邮件正文中包含引用此文件的<img>
标记。
如果这是动态图片,您可以让您的应用将其上传到众多图片托管网站之一,检索网址并再次将其作为HTML中src
标记的<img>
包含在内电子邮件正文。
答案 2 :(得分:0)
您应该使用 MFMailComposeViewController 类中的- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename
方法。
这是great example of this,显示从相机拍摄图像然后向其发送电子邮件消息!