メールアドレスを「確認/検証」するためにSMTPコマンドを使用しました(実際に存在するかどうか)。しかし、問題は、電子メールを有効な電子メール アドレスとして受け入れる場合と受け入れない場合があることです。
電子メールの検証に関する SMTP サーバーの制限 (セキュリティ目的) ですか? もしそうなら、どのような代替アプローチがありますか?
前述のように、ほとんどの電子メール サーバーは VRFY コマンドをシャットダウンします。
メールアドレスを確認するためのいくつかのオプションがあります
1) メール認証リンクを使用します。これにより、バウンスする確認メールを送信しすぎると、メール送信者 (あなたまたはあなたに文句を言う ESP) がトラブルに巻き込まれる可能性があるため、コンバージョン率が低下する可能性があります。到達性に問題がある場合、リンクは最終的にスパム/バルク フォルダーに入れられ、クリックされることはありません。コンバージョンやサポート チケットに関心がある場合、私はこのアプローチの大ファンではありません。しばらく前にこれについて調査し、興味がある場合はブログエントリを書きました: http://blog.strikeiron.com/bid/54483/Email-Verification-Links-Kill-Your-Conversion-Rate
2) 有料ツールを使用する。これらには 3 つのフレーバーがあります a) リアルタイム API - 有料ソリューションを提供する企業 (完全な開示、私のものはこの分野の企業の 1 つ) があり、電子メールをリアルタイムで高精度 (>95%) で検証できます。b) データベース ルックアップ ベンダー - これは、収集した電子メールをデータベースと比較する別の有料オプションです。一般的に安価ですが、リアルタイム c) PC 用のツールほど正確ではありません。これは避けてください。それらは正確ではなく、IP アドレスがブラックリストに登録されます。
3) 簡単なチェック (正規表現、MX サーバーのチェックなど) を行い、あいまいなメールを有効なものとして受け入れます。ボリュームとオーディエンスによっては、これが適切なオプションになる場合があります。
お役に立てれば。
ジャスティン
最善の方法は、ユーザーから確認を取得することです。ユーザーの名前で乱数を作成し、作成mt_rand()
中に使用してDBに保存します。へのフラグactivated
を保持し0
ます。
DBに格納されている乱数であるアクティベーションキーをメールで送信します。小さな可能な方法はこれです:
<?php
$random = mt_rand(1, 1000);
$random = $username . $random;
# Store the $random in the DB.
# Now send a mail
mail($userEmail, "Confirm", "Your Unique ID is $random");
?>