1

joomla Web サイトで連絡先フォーム モジュールを設定しようとしています。連絡先モジュールは、xxxxxxxxxxxx@gmail.com や xxxxxxxxxxxx@libero.it などの個人的なメール アドレスのすべてでうまく機能します。しかし、クライアントの会社のメール受信者でテストすると、メール機能が機能しません。

失敗に関する詳細情報を取得するために、次のように mailsender プロパティを個人のメール アドレスに設定しました。

$mailSender->setSender('xxxxxxx@libero.it');
$mailSender->addReplyTo('xxxxxxx@libero.it');

そして、これは私が得たものです:

元のメッセージは、2012 年 10 月 21 日 (日) 15:05:00 +0200 に apache@localhost から受信されました。

----- 次のアドレスには永久的な致命的なエラーがありました -----

info@xxxxxx.it
(reason: 553 5.3.0 <info@xxxxxx.it>... No such user here)
(expanded from: info@xxxxxx.it)

----- セッションのトランスクリプトが続きます -----

... while talking to [127.0.0.1]:
>>> DATA
<<< 553 5.3.0 <info@xxxxxx.it>... No such user here
550 5.1.1 info@xxxxxx.it... User unknown
<<< 503 5.0.0 Need RCPT (recipient)

添付ファイルには次のように記載されています。

Reporting-MTA: dns; xxxxxx.yyyyyyy.com
Arrival-Date: Sun, 21 Oct 2012 15:05:00 +0200

Final-Recipient: RFC822; info@xxxxxx.it
Action: failed
Status: 5.3.0
Remote-MTA: DNS; [127.0.0.1]
Diagnostic-Code: SMTP; 553 5.3.0 <info@xxxxxx.it>... No such user here
Last-Attempt-Date: Sun, 21 Oct 2012 15:05:01 +0200

会社のウェブメールが自社サーバーからのメールを受け付けていないようです。私はメールの専門家でも、専門の PHP プログラマーでもありません。何か案は?

メール機能が開始されて起動される私の joomla モジュールの部分に従います。

 $mailSender = &JFactory::getMailer();
$mailSender->addRecipient($recipient);

$mailSender->setSender('xxxxxxxxxxxxx@libero.it');
$mailSender->addReplyTo('xxxxxxxxxxxxx@libero.it');

$mailSender->setSubject('Richiesta informazioni da sito web');
$mailSender->setBody($myMessage);

if ($mailSender->Send() !== true) {
  $myReplacement = '<span style="color: ' . $error_text_color . ';">' . $errorText . '</span>';
  //header("Location: $url",303);
  print $myReplacement;
  return true;
}
else {
  $myReplacement = '<span style="color: '.$thanksTextColor.';">' . $pageText . '</span>';
  print $myReplacement;
  return true;
}
4

3 に答える 3

2

あなたは localhost を通してメールをリレーしています (あなたが と話している127.0.0.1) ため、ローカルの sendmail インストールは、単にリレーするのではなく、ドメインのメールを処理することになっていると考えている可能性があります。呼び出されたシステムにはユーザーがいないinfoため、エラーが返されます550 No such user here

そこにドメインがリストされているかどうかを確認/etc/mail/local-host-namesし、それがコメントアウトされている場合は、sendmail を で再起動しservice sendmail restartます。

また、 で localhost のリレーを許可していることを確認してください/etc/mail/access。私のファイルは、CentOS 5.8 および Sendmail 8.13.8 で次のようになります。

Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY

もう 1 つのオプションは、sendmail をオンにする代わりに、実際のメール サーバーを SMTP リレーとして使用することです。localhost問題のドメインが何なのかはわかりませんが、smtp.example.comおそらくmail.example.com. もう 1 つの注意点は、このサーバーが Web サーバーからのメールを中継するために認証を必要とする場合があることです。管理者に確認し、それに応じて PHP コードを更新する必要があります。

于 2012-10-21T14:21:39.070 に答える
0

あなたが私に言ったことがわかったかどうか見てみましょう:1)私のjoomla Webサイトをホストするサーバーには、メール送信のリクエストを管理するメール「エンジン」があります。2) 受信者 info@xxxxxx.it が、127.0.0.1 を呼び出す要求を収集する同じメール サーバー上にある場合。

3) info というユーザーが見つかりません。

実際のところ、クライアントの会社の Web メールや Web サーバーを制御することはできません。

localhost からのものであることを示さないように、リクエストをマスクできますか? 他の解決策はありますか?私の悪い英語で申し訳ありません....

于 2012-10-21T14:59:21.897 に答える
0

おそらく、送信者のメールが、メールを送信しようとしているメーリング リストの登録メンバーではないことが原因です。一部のメーリング リストでは、メンバーとして登録されているメール アドレスからのメールのみを受け付けます (メーリング リストのオプションで、許可された送信者で管理できます)。

于 2012-10-21T14:05:12.243 に答える