0

好的,

用于从 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,例如。

我该怎么做?

先感谢您。

亚历克斯

4

2 回答 2

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 类参考

于 2010-07-16T07:24:44.027 回答
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。

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

于 2010-07-18T00:33:47.973 回答