【问题标题】:MFMailComposeViewController Invalid Email Address?MFMailComposeViewController 电子邮件地址无效?
【发布时间】:2012-04-22 12:02:58
【问题描述】:

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

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

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

我注意到,如果给它一个无效的电子邮件地址,它根本不会将其放入收件人字段中,我是否会采取措施处理这种情况?还是覆盖它?

谢谢。

【问题讨论】:

  • 你的 emailString 里有什么?
  • 假设emailString 等于skdhfsf 然后它检测到它的无效并且不将其添加为收件人,但是假设它的email@address.com,它可以看到它的有效,因此将其添加为一个收件人。那么,当它检测到它是否有效时,我是否可以被告知?

标签: iphone objective-c ios email


【解决方案1】:

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

    -(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 个字母的假设也是不正确的。见haacked.com/archive/2007/08/21/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多