2012-04-22 172 views
3

我正在使用MFMailComposeViewController,因此用户可以在应用程序中发送电子邮件。就像这样:MFMailComposeViewController无效的电子邮件地址?

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init]; 

[mail setToRecipients:[NSArray arrayWithObject:emailString]]; 
mail.mailComposeDelegate = self; 
[self presentModalViewController:mail animated:YES]; 

如果无效的电子邮件地址提供给它,我已经注意到它根本不把它放到受助场,反正是有我的考虑这一切都发生作用?或覆盖这个?

谢谢。

+0

你的emailString中有什么? – Charan 2012-04-22 13:14:08

+0

假设'emailString'等于'skdhfsf',那么它会检测到它的无效并且不会将其添加为收件人,但可以说它的'email @ address.com',它可以看到它的有效并因此将其添加为收件人。那么无论如何,当它检测到它是否有效时我可以被告知。 – 2012-04-22 13:36:00

回答

0

首先尝试验证您的电子邮件地址。使用下面的代码

-(BOOL) NSStringIsValidEmail:(NSString *)checkString 
    { 
      NSString *stricterFilterString = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
      NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", stricterFilterString]; 
      return [emailTest evaluateWithObject:checkString]; 
    } 

将您的电子邮件字符串作为参数传递给NSStringIsValidEmail:方法。如果有效,它将返回YES,否则返回NO。

+0

正则表达式将拒绝大量有效的电子邮件地址。它在“@”之前允许的字符集太小,并且假设顶级域总是2-4个字母也是不正确的。见http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx – 2012-04-22 15:34:36

相关问题