2017-01-12 7 views
2

私は90日ごとにパスワードを変更する必要がある電子メールアカウントでPHPMailerを使用しています。PHPMailerのユーザー名とパスワードを送信せずに、つまり接続を確認してください。

電子メールを実際に送信せずにアカウントとのPHPMailer接続をチェックすることはできますか?理想的には、ユーザーが「接続の確認」というタイトルのボタンをクリックし、「接続に成功しました」または「接続に失敗しました」というボタンが表示されます。

SMTPに接続できるかどうかを確認するのではなく、実際にユーザー名とパスワードを確認して結果を返すことに注意してください。

誰かがConnect()関数を使用して言及したのを見ましたが、私はこの問題を解決できません。

ありがとうございました。

+0

は、あなたがこれまでにしようとしているものを追加することができますか? – jbduzan

+0

初期インスタンスを設定した後、私は以下を試しました: if($ mail-> Connect()){ echo "Connection successful"; else { echo "接続エラー"; } – Magiclint

答えて

1

これを行う方法を示すコードが既にありますか?それはone of the examples provided with PHPMailerです。ここで

はそれのバルクです:

require '../PHPMailerAutoload.php'; 
//Create a new SMTP instance 
$smtp = new SMTP; 
//Enable connection-level debug output 
$smtp->do_debug = SMTP::DEBUG_CONNECTION; 
try { 
    //Connect to an SMTP server 
    if (!$smtp->connect('mail.example.com', 25)) { 
     throw new Exception('Connect failed'); 
    } 
    //Say hello 
    if (!$smtp->hello(gethostname())) { 
     throw new Exception('EHLO failed: ' . $smtp->getError()['error']); 
    } 
    //Get the list of ESMTP services the server offers 
    $e = $smtp->getServerExtList(); 
    //If server can do TLS encryption, use it 
    if (is_array($e) && array_key_exists('STARTTLS', $e)) { 
     $tlsok = $smtp->startTLS(); 
     if (!$tlsok) { 
      throw new Exception('Failed to start encryption: ' . $smtp->getError()['error']); 
     } 
     //Repeat EHLO after STARTTLS 
     if (!$smtp->hello(gethostname())) { 
      throw new Exception('EHLO (2) failed: ' . $smtp->getError()['error']); 
     } 
     //Get new capabilities list, which will usually now include AUTH if it didn't before 
     $e = $smtp->getServerExtList(); 
    } 
    //If server supports authentication, do it (even if no encryption) 
    if (is_array($e) && array_key_exists('AUTH', $e)) { 
     if ($smtp->authenticate('username', 'password')) { 
      echo "Connected ok!"; 
     } else { 
      throw new Exception('Authentication failed: ' . $smtp->getError()['error']); 
     } 
    } 
} catch (Exception $e) { 
    echo 'SMTP error: ' . $e->getMessage(), "\n"; 
} 
関連する問題