发电子邮件到固定电子邮件地址

时间:2011-06-23 10:20:32

标签: iphone objective-c

我有一个应用需要发送电子邮件到不断的电子邮件地址。 我用这段代码发送电子邮件到现在为止:

NSString *subject = [NSString stringWithFormat:@"%@ Login Info",self.name];
    NSString *body = [NSString stringWithFormat:@"Username : %@ \n Password : %@ \n E-Mail : %@ \n Sequrity Question : %@ \n Sequrity Answer : %@" ,self.user,self.password,self.email,self.seqQuestion,self.seqAnswer];
    NSLog(@"%@",body);
    NSString *mailString = [NSString stringWithFormat:@"mailto:?to=%@&subject=%@&body=%@",
                            [to stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                            [subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
                            [body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];

问题来自于使用该应用程序未定义电子邮件地址的用户是iphone的邮件应用程序,因此他无法发送邮件。

还有其他方法可以将电子邮件发送到固定电子邮件地址吗?

2 个答案:

答案 0 :(得分:1)

为什么不使用SDK的电子邮件/邮件系统,而不是创建mailto:url链接?

检查用户是否可以先发送电子邮件

if ([MFMailComposeViewController canSendMail])

如果返回NO,则用户无法发送电子邮件。也许会显示一条消息,提示他们可能需要配置电子邮件设置。

如果他们可以发送消息(即配置了电子邮件),则撰写并发送电子邮件

    MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
    [controller setSubject:@"Subject goes here"];
    NSString *msgString = [NSString stringWithFormat:@"Message body"];
    [controller setMessageBody:msgString isHTML:NO]; 
    [viewController presentModalViewController:controller animated:YES];
    [controller release];

如果您发现用户无法在第一个实例中发送电子邮件,您将需要编写自己的服务并连接到该服务(可能通过Web服务),或者您必须编写自己的实现电子邮件协议,用于连接到已知帐户的已知服务器。

答案 1 :(得分:0)

您可以设置一个简单的Web服务,为您发送邮件,而不是直接发送邮件;这样你就不需要依赖电话上的任何正确设置,当然除了工作的互联网连接。