Mailto iPhone问题

时间:2010-07-16 06:49:05

标签: iphone email mailto

确定,

用于从iPhone上的表单发送电子邮件的常规协议(据我所知)是通过Mail应用程序发送的。这段代码在这里:

-(IBAction)sendEmail {

    NSString *url = [NSString stringWithFormat: @"mailto:%@?body=%@", toEmail.text, content.text];
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];

    //status.text = @"Sending...";
}

现在,我希望它成为一个只发送电子邮件的表单。我不希望它通过邮件或任何东西,我希望它从预定义的地址发送,例如mail@mydomain.com

我该怎么做?

提前谢谢。

亚历

2 个答案:

答案 0 :(得分:1)

在您的情况下,我建议您使用MFMailComposeViewController 它很容易集成。我不确定是否有可能从预定义的地址写电子邮件(我想以这种方式发送电子邮件使用用户设备的默认邮件帐户)。

为了获得更大的灵活性,我想你必须使用SMTP。

我在项目中所做的是:

-(void)displayComposerSheet{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:NSLocalizedString(@"MailSubject", @"")];
NSString *emailBody = NSLocalizedString(@"MailBody", @"");
[picker setMessageBody:emailBody isHTML:YES];
[self presentModalViewController:picker animated:YES];
[picker release];

}

还有一些可以处理的委托方法。 你可以在这里找到与MFMailComposeViewController相关的所有内容MFMailComposeViewController Class Reference

答案 1 :(得分:0)

MFMailCompose似乎确实是从您的设备默认帐户邮寄的。

我在我的实施文件中使用这段代码将反馈电子邮件发送到我希望他们发送到的预定义地址。

它被设置为一个按钮,在单击时显示视图。

-(IBAction) Feedback:(id)sender {
        NSArray *toRecipients = [NSArray arrayWithObject:@"xxxxxxxx"];
        MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
        picker.mailComposeDelegate = self;
        picker.navigationBar.tintColor = [UIColor colorWithRed:.0 green:.1706 blue:.3804 alpha:1];
        [picker setToRecipients:(NSArray *)toRecipients];
        [picker setSubject:@"Feedback"];

        [self presentModalViewController:picker animated:YES];
        [picker release];


}

我把x放在了电子邮件地址的位置。 此代码还会对我的邮件表单中的导航栏进行着色。

这需要MessageUI和MFMailComposerDelegate。

如果需要,您也可以包含多个电子邮件地址,因为它会在数组中构建它们。