2016-10-04 12 views
0

電子メールIDが存在するかどうかを確認しようとしています。たとえば、 https://code.google.com/archive/p/php-smtp-email-validation/ https://github.com/webdigi/SMTP-Based-Email-Validation/blob/master/checkemailexample.phpなど多くの例をチェックしています。 Gmailの場合はすべて同じように動作していますが、yahooなどの他のメールサービスでは正しく機能しません。 メールを送信する前にすべてのメールIDを確認する方法はありますか?電子メールIDが存在するかどうかを確認する

+1

チェックこのリンクhttp://stackoverflow.com/questions/565504/how-to-check-if-an-email-address-exists-without-sending-an-email – Elby

答えて

1

まだ有効な検証ツールが見つかりませんでした。あなたの最善の策は、フォーマットが正しいことを検証することです。次に、テストするために、ユーザーにメッセージを送信し、サイトにリンクする何らかのアクションを実行するよう依頼します。あなたは簡単にphpとデータベースを使用して、ユーザーがあなたのサイトと対話したときに記録することができます。次に、アドレスが有効で、意図したユーザーのものであることを確認します。これはまた、迷惑メールとして分類されないようにすることをお勧めします。

これは私が形式を検証するために見つけた最高のjQueryのスクリプトです:

function isValidEmailAddress(emailAddress) { 
    var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i); 
    return pattern.test(emailAddress); 
}; 
+0

必須参照します。http:// stackoverflowの.com/questions/201323 /正規表現を使用した電子メールアドレスの検証?rq = 1 – Synchro

0

は、接続RCPT TOを発行し、接続をドロップするには、あなたがヤフーの同類によってブラックリストに取得する可能性が非常に高いです。唯一信頼できる方法は、送信したいメッセージを送信することです。それが成功した場合は、素晴らしい、それがない場合は、バウンスを受信し、処理し、次回のために知っている準備ができているバウンスハンドラを持っていることをお勧めします。

PHPのfilter_var機能を使用するなど、単純なRFC検証によって事前にいくつかのアドレスを削除することは明らかですが、これは失敗する可能性が非常に低く、ドメインが存在し、メールを受信できるかどうかを調べることもできます。 MXレコードとAレコードの両方がDNSに存在することを確認してください。それ以外の場合は、実際にメッセージを送信することなく伝えることはできません。

関連する問題