0

データベースからユーザーのパスワードを取得し、そのユーザーに電子メールで送信するための次のコードがあります。ユーザーの電子メールがデータベースに存在する場合、ユーザーにパスワードを正常に送信できます。ただし、電子メールが存在しない場合は、特定のユーザーの電子メールがデータベースに存在しないことをコードにエコーさせたいと思います。フォームに無効なメールアドレスが入力された場合、私のコードでは次の結果が得られます。

受信者の追加に失敗しました:@localhost [SMTP:サーバーから受信した無効な応答コード(コード:555、応答:5.5.2構文エラー。v9sm2318990paz.6)]

この目的でif-elseステートメントを使用してみました。これが私が書いたコードです:

<?php

//Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select DB");

// email value sent from HTML form
$email_to=$_POST['email'];

// table name
$tbl_name="registration";

if($mysql1 = "SELECT ID,Email,Password FROM $tbl_name WHERE Email='$email_to' ORDER BY ID DESC ")
{
$selectemail = mysql_query($mysql1);

$shah       =   mysql_fetch_array($selectemail);
$EMAIL      =   $shah['Email'];
$UID        =   $shah['ID'];
$password           =       $shah['Password'];

require_once "/home/computat/php/Mail.php";

$from = "abhishekagrawal.988@gmail.com";
$to = $EMAIL;  

$subject = "Your password for www.computationalphotography.in";
$body    = "Your password for logging on to our website www.computationalphotography.in is:\n$password\r\nIf you have any additional queries, kindly write to us at abhishekagrawal.988@gmail.com\r\n\nThanks & Regards\nThe Computational Photography Team\n";   

    $host = "ssl://smtp.gmail.com";
    $port = "465";
    $username = "abhishekagrawal.988@gmail.com";  //
    $password = "*********";

    $headers = array ('From' => $from,
      'To' => $to,
      'Subject' => $subject);
    $smtp = Mail::factory('smtp',
      array ('host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password));

    $mail = $smtp->send($to, $headers, $body);

    if (PEAR::isError($mail)) {
      echo("<p>" . $mail->getMessage() . "</p>");
     } else {
      echo("<p></p>");
     }
}
else{
echo "<b><center>Email not found in the database</center></b>";
}
/*    
4

2 に答える 2

1

これを使って

$mysql1 = mysql_query("SELECT ID,Email,Password FROM $tbl_name WHERE Email='$email_to' ORDER BY ID DESC ");
if(mysql_num_rows($mysql1)){
      //exists in db
}
else{//does not exist}

減価償却中または減価償却中のmysql_*関数の使用は避けてくださいmysqli_*PDOmysql_*

于 2012-11-17T06:26:14.230 に答える
0

Mail.phpの$email変数に@localhostが追加されていると思います

スクリプト内の$email変数の名前を変更してみてください。

また、die($ email);を使用することもできます。スクリプトで、さまざまな段階で電子メールの価値をテストします。

于 2012-11-17T06:38:27.543 に答える