会社の Web サイトの開発を引き継いだのですが、機能しないパスワード リセット フォームがあり、それがわかりません。PHPMailer を使用して、ユーザーの電子メール アドレスにリセット キーを送信します。PHP クエリはデータベースに問題がなく、ユーザーの正しいメール アドレスとリセット キーを返します。
<?php
require_once('./library.php');
require_once('./PHPMailer/class.phpmailer.php');
$Trader = new CompanyTrader();
$resetdata = $Trader->resetTrader($_GET['name']);
print_arr($resetdata);
$reset = new PHPMailer(true);
$reset->IsSMTP();
try {
$reset->Host = EM_HOST;
$reset->SMTPDebug = 2; //2 to debug
$reset->SMTPAuth = EM_AUTH;
$reset->AddReplyTo(CONFIRM_REPLY_EMAIL, 'Company');
$reset->AddAddress($resetdata['traders_email_add'], $resetdata['traders_cont_name']);
$reset->SetFrom(CONFIRM_REPLY_EMAIL, 'Company');
$reset->Subject = 'Company Account Password Reset';
$reset->AltBody = 'To view the message, please use an HTML compatible email viewer!';
$body = file_get_contents('./templates/reset_email.html');
$body = eregi_replace("\[USER_NAME\]", $resetdata['traders_user_name'], $body);
$body = eregi_replace("\[RESET_KEY\]", $resetdata['traders_reset'], $body);
$reset->MsgHTML($body);
$reset->Send();
} catch (phpmailerException $e) {
@log_this("Pass Reset Sending Failed: ".$e->errorMessage(),"email");
return false;
} catch (Exception $e) {
@log_this("Pass Reset Sending Failed: ".$e->getMessage(),"email");
return false;
}
?>
PHPMailer は次のようなエラーを返します。
SMTP -> FROM SERVER:220-78.109.170.70.srvlist.ukfast.net ESMTP Exim 4.80 #2 Wed, 26 Dec 2012 21:41:58 +0000 220-We do not authorize the use of this system to transport unsolicited, 220 and/or bulk e-mail.
SMTP -> FROM SERVER: 250-78.109.170.70.srvlist.ukfast.net Hello localhost.localdomain [127.0.0.1] 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP
SMTP -> FROM SERVER:250 OK
SMTP -> FROM SERVER:250 Accepted
SMTP -> FROM SERVER:354 Enter message, ending with "." on a line by itself
SMTP -> FROM SERVER:250 OK id=1Tnyje-0000Kh-IL
私はそれを解決することはできません。ホストが送信できるメールの量を制限しているためですか? その場合、他のすべての PHPMailer フォームが機能し、すべての設定がサイト全体で同じになります。ありがとう。