PHPList(バージョン2.10.17)は、次のいずれかの形式に一致するアドレスにメッセージを送信するために失敗したために失敗しました 問題のコードされる:選択されたコード・パスはPHPListは、電子メールの末尾に、有力とアドレス、または複数の隣接ドット
function MailSend($header, $body) {
$to = "";
for($i = 0; $i < count($this->to); $i++)
{
if($i != 0) { $to .= ", "; }
$to .= $this->to[$i][0];
}
if ($this->Sender != "" && (bool) ini_get("safe_mode") === FALSE)
{
$old_from = ini_get("sendmail_from");
ini_set("sendmail_from", $this->Sender);
$params = sprintf("-oi -f %s", $this->Sender);
$rt = @mail($to, $this->EncodeHeader($this->Subject), $body,
$header, $params);
}
else
$rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header);
if (isset($old_from))
ini_set("sendmail_from", $old_from);
if(!$rt)
{
$this->SetError($this->Lang("instantiate"));
return false;
}
return true;
}
:
テスト目的でPHPListをセットアップした自分のWebサーバーでこのエラーを再現できませんでした。
残念ながら、この動作を示す唯一のシステムは本番システムです。それに加えて、私はそのシステム上のログファイルにアクセスすることができないので、何が間違っているのか分かりません。
この作業を行うには、$to
の「文字列エスケープ」が必要ですが、いくつかのログ出力を挿入する以外には、本番システムを改ざんすることに多少なりとも反対しています。
誰かがこの種の問題の回避策を知っていますか?
あなたはエラーを抑圧していますが、なぜそうしますか?あなたのコードが実行されるたびに、神は子猫を殺します。私はあなた自身を誇りに思うことを願っています。 –
@ truth lol。あなたは誤りを抑圧することについて正しいです。そんなことしたらダメ。 – ThinkingMonkey
@ Truth err ...私はそうではありません。彼らがなぜそれをするのかをPHPListの人に尋ねなさい...彼らにはたくさんの理由があると確信している。その理由は、スクリプトがcronジョブによって実行されるためです。 – yas4891