Article ID: 115395, created on Mar 6, 2013, last review on May 11, 2014

  • Applies to:
  • Plesk 11.0 for Linux

問題の概要

次のような問題が発生します。
  1. 永続的なエラー(5.X.X)を使用すると、メールを受信者に配送できないことを通知するバウンス(バックスキャッタ)が送信者に即時に返されます。 (多くの顧客がこちらを好みます。)
  2. 一時的なエラー(4.X.X)を使用すると、リモート MTA が Plesk サーバに対するメール配送を何度も試行するため、メールシステム全体のパフォーマンスが低下します。 Qmail をリモート MTA として使用する場合、メール配送は 1 回限りではなく 40 回まで試行されます。 http://www.lifewithqmail.org/lwq.html#retry-schedule
  3. ただし、RFC では、一時的なエラー(4.X.X)を使用することが推奨されています。 一般に、一時的なエラーは支払システムなどからの自動応答の配送には適していますが、友人・知人からのメールの場合は電話でメールボックスがフルだと告げることができるため、適切ではありません。

解決策

バージョン 11.0.9 MU#29 から、"Mailbox full" エラーのエラーコードを変更できるようになりました。ただし、前述のように、これは推奨されていません(上記のポイント 3 を参照)。
エラーコードを変更するには:
  1. 新しいメールハンドラを作成し、優先度を通常のハンドラの check-quota(10)より高く設定します。
    # /usr/local/psa/admin/sbin/mail_handlers_control --add --priority=5 --name=check-quota-permanent --queue=before-queue --type=global --mailname=all-recipients --executable=/usr/local/psa/handlers/hooks/check-quota --context=permanent --enabled
  2. 新しいハンドラの受信者を修正します。 
    # sqlite3 -line /var/lib/plesk/mail/handlers/handlers.db 'update handlers set address="all-recipients" where name="check-quota-permanent"'
  3. ハンドラを check-quota-permanent として実行した後で通常のメールハンドラの check-quota をコールしないように、無効化する必要があります。
    # /usr/local/psa/admin/sbin/mail_handlers_control --disable --name=check-quota --type=global --queue=before-queue
すべて適切に設定すると、次のような結果になります。
# /usr/local/psa/admin/sbin/mail_handlers_control --list | grep check-quota
| | 10 | all-recipients | check-quota | global | before-queue |
| X | 5 | all-recipients | check-quota-permanent | global | before-queue |

注記: メールサーバを "mchk" ユーティリティによって(または Plesk のアップグレード後に)リセットすると、この回避策が削除されてしまいます。これらのコマンドを再び適用してください。 また、この MTA に対する修正が含まれる MU をインストールしたり、MTA を Postfix から Qmail へ(または Qmail から Postfix へ)変更した場合にも、この回避策は削除されます。 これを防ぐには、以下のコマンドでカスタムシェルスクリプトを実行するタスクをスケジュールすることができます。
/usr/local/psa/admin/sbin/mail_handlers_control --remove --name=check-quota-permanent --queue=before-queue --type=global

/usr/local/psa/admin/sbin/mail_handlers_control --add --priority=5 --name=check-quota-permanent --queue=before-queue --type=global --mailname=all-recipients --executable=/usr/local/psa/handlers/hooks/check-quota --context=permanent --enabled

sqlite3 -line /var/lib/plesk/mail/handlers/handlers.db 'update handlers set address="all-recipients" where name="check-quota-permanent"'

/usr/local/psa/admin/sbin/mail_handlers_control --disable --name=check-quota --type=global --queue=before-queue

ただし、これを使用すると、Plesk の新規バージョンに対して予測できない競合が発生する場合があります。 そのため、このコマンドは自己責任でご利用ください。

aea4cd7bfd353ad7a1341a257ad4724a 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 0a53c5a9ca65a74d37ef5c5eaeb55d7f

Email subscription for changes to this article