iPhone In App电子邮件

时间:2011-03-09 19:17:38

标签: iphone objective-c ios4 iphone-sdk-3.0

我的应用程序发送了一封电子邮件,但有没有办法在我发送的文本上面放一张照片。有点像标题来显示我的标识。

3 个答案:

答案 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,显示从相机拍摄图像然后向其发送电子邮件消息!