MFMailComposeViewController无效的电子邮件地址?
问题描述:
我正在使用MFMailComposeViewController,因此用户可以在应用程序中发送电子邮件。就像这样:MFMailComposeViewController无效的电子邮件地址?
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
[mail setToRecipients:[NSArray arrayWithObject:emailString]];
mail.mailComposeDelegate = self;
[self presentModalViewController:mail animated:YES];
如果无效的电子邮件地址提供给它,我已经注意到它根本不把它放到受助场,反正是有我的考虑这一切都发生作用?或覆盖这个?
谢谢。
答
首先尝试验证您的电子邮件地址。使用下面的代码
-(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
你的emailString中有什么? – Charan 2012-04-22 13:14:08
假设'emailString'等于'skdhfsf',那么它会检测到它的无效并且不会将其添加为收件人,但可以说它的'email @ address.com',它可以看到它的有效并因此将其添加为收件人。那么无论如何,当它检测到它是否有效时我可以被告知。 – 2012-04-22 13:36:00