MFMailComposeViewController无效的电子邮件地址?

3
我正在使用MFMailComposeViewController来让用户在应用内发送电子邮件。就像这样:
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];

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

我注意到如果输入无效的电子邮件地址,它不会将其放入收件人字段。如果发生这种情况,我能否采取行动或覆盖此操作?
谢谢。

你的 emailString 里面有什么? - Charan
假设 emailString 等于 skdhfsf,那么它会检测到它是无效的,并且不会将其添加为收件人。然而,如果它是 email@address.com,它可以看到它是有效的,因此将其添加为收件人。那么有没有办法在它检测到是否有效时告诉我呢? - Josh Kahane
1个回答

2

首先尝试验证你的电子邮件地址。使用以下代码:

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

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

那个正则表达式将会拒绝很多有效的电子邮件地址。它允许 "@" 前面的字符集太小了,并且假设顶级域名总是2-4个字母也是不正确的。请参考 http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx。 - David Gelhar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接