1

phpmailer を使用して Qmail サーバー経由で電子メールを送信しようとしています。送信後、「メッセージが送信されました」というメッセージが表示されますが、すべてのメッセージが受信されません..私のコードは次のとおりです。

<?php
require("class.phpmailer.php");
$name = "Purchase Form";
$email_subject = "New Purchase Ticket";
$body = NULL;
foreach ($_REQUEST as $field_name => $value){
if (!empty($value)) $body .= "$field_name = $value\n\r";
}
$mail = new PHPMailer();
$mail->IsQmail();
$mail->FromName = $name;
$mail->AddAddress('*******@*********', 'Purchase Ticket');
$mail->Body = $body;
$mail->IsHTML(false);
$mail->Subject = $email_subject;
if(!$mail->Send())
{  echo "didnt work";
}
else {echo "Message has been sent";}

?>

コマンドラインから入力するmail *****@****.com blah blahと、正常に送信されます..

4

3 に答える 3

2

メールサーバーのログを確認してください。サーバーはアクティブですか? メールキューを処理していますか? メッセージを送信しようとしましたか?メッセージはバウンスしましたか? メッセージがキューに残っていますか?

PHPMailer が機能したと言っているからといって、実際に問題が発生したわけではありません。つまり、PHPMailer が電子メールを SMTP サーバーに正常に渡したということです。その後、それは PHPMailer の手に負えなくなります。PHP 側からのすべてが機能しているように見えるので、調査をプロセスの次の段階である SMTP サーバーに移す必要があります。

于 2011-09-07T21:41:06.863 に答える
0

サーバーが、設定したユーザーとして送信できることを確認してください。FromName

于 2011-09-07T21:26:07.553 に答える
0

これは CR/LF の問題だと思います。これは PHP で約 4 年間既知のバグであり、私の知る限り、現在まで修正されていません。

http://bugs.php.net/bug.php?id=15841

RFC に準拠していない改行形式を使用しているため、生成された電子メールは有効ではありません (説明はhttp://cr.yp.to/docs/smtplf.htmlにあります)。sendmail や postfix などの他の MTA は、この問題を自動的に修正します。qmail はそうではありません。

php で正しいメールを作成するか ()、qmail 管理者に QmailScanner ( http://qmail-scanner.sourceforge.net/ ) を使用するように依頼してください。これもこの仕事をしています。

最善の解決策は、php をアンインストールして、今後は perl を使用することです;)

于 2011-10-08T18:21:41.877 に答える