0

メールを送信する前に、テキストボックスに入力されたメールアドレスを確認しました。つまり、構文で確認しました。しかし、PHP を使用して正しいメールアドレスを確認または検証する方法は?

if(mail($emailto)) {
   echo("status=Sent");
}
else {
   echo("status=Failed");
}

たとえば、xxxxxxxxaddfb54@yahoo.com と入力すると、有効な電子メール ID として受け入れられます。それが存在するかどうかはどうやってわかりますか?

4

3 に答える 3

3

できません。これがインターネットの性質です。ホストを制御できない限り、任意のホスト (ホスト上のアカウントは言うまでもなく) が常に特定の状態にあることを完全に確信することはできません。

配信の試行が失敗したことを具体的に示すメーラー デーモンからの返信メッセージによって、失敗を伝えることができます。しかし、それはほとんどの私的なメーラーがあなたに差し伸べることのない礼儀です.

サーバーがそのように動作するように特別に設定していない限り、配信が成功した場合でも、返品確認メールを受け取ることはほとんどありません.

于 2012-09-27T02:15:18.143 に答える
0

ユーザーは読むときにそれを教えてくれます:)

すでに述べたようにはできません。そのため、「メールを再送信してください」リンクを必ず提供してください。そうすれば、ユーザーは正しいメールを送信したり [間違っていた場合]、単に再送信したりできます。 SMTPサーバーに問題があった場合。

于 2012-09-27T02:17:31.433 に答える
0

電子メール アドレスが存在するかどうかを判断することは不可能です (接続しようとしているサーバーに、このための何らかの API がある場合を除きます)。ただし、ドメインに電子メールを送信できるかどうかを確認することはできます。

function checkEmailDomain($email) {
   list(,$domain) = explode('@', $email);
   if (checkdnsrr($domain, 'MX')) {
      return TRUE;
   }
   else if (checkdnsrr($domain, 'A')) {
      return TRUE;
   }
   return FALSE;
}

これも100%信頼できるものではないことに注意してください。使用したい場合は、純粋に助言的であるべきです。

于 2012-09-27T02:17:35.283 に答える