2012-04-22 14 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

+0

'emailString'が' skdhfsf'と等しく、それが無効であることを検出してそれを受信者として追加しませんが、 'email @ address.com'と言うと、その有効を見ることができ、受信者として追加します。とにかく、それが有効であるかどうかを検出すると、私は言えますか? –

答えて

0

最初にあなたのメールアドレスを確認してみてください。方法:NSStringIsValidEmailへの引数として電子メールの文字列を渡し

-(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]; 
    } 

以下、このコードを使用します。有効な場合はYESを返し、そうでない場合はNOを返します。

+0

その正規表現は、有効な電子メールアドレスの多くを拒否します。 "@"があまりにも小さくなる前に許容される文字の集合であり、最上位のドメインが常に2〜4文字であるという仮定も間違っています。 http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspxを参照してください。 –

関連する問題