从其他应用发送电子邮件

时间:2011-04-20 08:54:41

标签: iphone ios4

我想在按下按钮的应用程序中启动电子邮件应用程序。但是当我按下按钮时没有发生任何事情!

代码:

- (IBAction) startMail
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:emailAdress?subject=testMail&body=its test mail."]];
}

代码中有什么问题吗?也可以在IB中正确设置按钮。

谢谢..

6 个答案:

答案 0 :(得分:1)

如果您想在应用程序中撰写电子邮件,您应该查看MFMailComposeViewController reference,而不是调用mailto:URL方案。

答案 1 :(得分:1)

使用mailto URL无法在模拟器中运行,因为模拟器上未安装mail.app。它确实在设备上工作。

答案 2 :(得分:1)

您可以使用“MFMailComposeViewController”从您的应用程序发送邮件。

示例代码 -

MFMailComposeViewController *picker;

picker = [[MFMailComposeViewController alloc] init];

picker.mailComposeDelegate = self;

NSString *objSubject = [[NSString alloc] init];<br/>
NSString *emailBody = [[NSString alloc] init];
[picker setSubject:objSubject];

[picker setMessageBody:emailBody isHTML:YES];

[self presentModalViewController:picker animated:YES];

您必须使用以下代理检查已发送邮件的状态

**-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{
}**

享受

答案 3 :(得分:0)

试试这个:

    NSString *mailString = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@",
                        [to stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                        [subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                        [body  stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];

此处,主题和正文是NSString变量

答案 4 :(得分:0)

检查一下,这是一个比将用户从应用程序中删除更好的解决方案;
How can I send mail from an iPhone application

答案 5 :(得分:0)

NSString *url = [NSString stringWithString: @"mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];