通过iPhone应用程序发送电子邮件

时间:2011-08-07 19:57:28

标签: iphone objective-c

我想在我正在制作的iPhone应用程序中设置一个按钮,发送一封电子邮件,其中包含应用程序中之前执行的某些操作的结果。我已经读过其他人在这里评论你可以使用其他框架,但坦率地说,我找不到一个真正有用的框架。我听说MailCore很好。有没有人能够通过iPhone应用程序无缝地发送电子邮件?

注意:我不想退出应用程序发送电子邮件。

3 个答案:

答案 0 :(得分:1)

从这个问题回答:How can I send mail from an iPhone application

在iPhone OS 3.0及更高版本中,您应该使用MFMailComposeViewController类和MFMailComposeViewControllerDelegate协议,它隐藏在MessageUI框架中。 注意您必须链接Message UI Framework并导入其标题。

#import <MessageUI/MFMailComposeViewController.h>

首先发送消息:

MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO]; 
if (controller) [self presentModalViewController:controller animated:YES];
[controller release];

然后用户完成工作并及时获得委托回调:

- (void)mailComposeController:(MFMailComposeViewController*)controller  
      didFinishWithResult:(MFMailComposeResult)result 
                    error:(NSError*)error;{
 if (result == MFMailComposeResultSent) {
NSLog(@"It's away!");
}
 [self dismissModalViewControllerAnimated:YES];
}

答案 1 :(得分:0)

在这种情况下,您最好的选择是使用像Amazon Simple Email Service(SES)这样的服务。它使您能够在不离开应用程序的情况下发送电子邮件(与列出的其他解决方案不同)。 Amazon AWS有一个可以利用SES服务的iOS SDK。这项服务使用起来非常简单,而且成本极低。

http://aws.amazon.com/sdkforios/

答案 2 :(得分:0)

MFMailComposeViewController *mailComposer =[[MFMailComposeViewController alloc] init];  
mailComposer.mailComposeDelegate = self; 
NSString *emailBody = @"Write email body text here........";
[mailComposer setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];