メールが配信されない…メモ

MailGateway

直ぐに確認したかったメールがスパム判定されないか確認しようとMail Gatewayの管理画面で確認してたら全然来ない。
今回のメールは、fetch mail で外部メールを取り込んでいるので、間隔を短くしようと設定を変えようとすると、PostgreSQLに接続出来ないエラーが…

PostgreSQLさんは起動してたのなんでかと思ってたら、PostgreSQLさんのクラスターが起動してなかった…

root@mailgw2:~# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Sun 2024-06-16 05:15:07 JST; 22min ago
    Process: 521 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 521 (code=exited, status=0/SUCCESS)
        CPU: 3ms

 6月 16 05:15:07 mailgw2 systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
 6月 16 05:15:07 mailgw2 systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
root@mailgw2:~# 
root@mailgw2:~# systemctl status postgresql@15-main.service
× postgresql@15-main.service - PostgreSQL Cluster 15-main
     Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; preset: enabled)
     Active: failed (Result: protocol) since Sun 2024-06-16 05:15:07 JST; 4min 48s ago
    Process: 501 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 15-main start (code=exited, status=1/FAILURE)
        CPU: 323ms

 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: 2024-06-16 05:15:07.582 JST [513] LOG:  invalid value for parameter "lc_messages": "en_US.UTF-8"
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: 2024-06-16 05:15:07.591 JST [513] LOG:  invalid value for parameter "lc_monetary": "en_US.UTF-8"
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: 2024-06-16 05:15:07.591 JST [513] LOG:  invalid value for parameter "lc_numeric": "en_US.UTF-8"
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: 2024-06-16 05:15:07.591 JST [513] LOG:  invalid value for parameter "lc_time": "en_US.UTF-8"
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: 2024-06-16 05:15:07.591 JST [513] FATAL:  configuration file "/etc/postgresql/15/main/postgresql.conf" contains errors
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: pg_ctl: could not start server
 6月 16 05:15:07 mailgw2 postgresql@15-main[501]: Examine the log output.
 6月 16 05:15:07 mailgw2 systemd[1]: postgresql@15-main.service: Can't open PID file /run/postgresql/15-main.pid (yet?) after start: No such file or directory
 6月 16 05:15:07 mailgw2 systemd[1]: postgresql@15-main.service: Failed with result 'protocol'.
 6月 16 05:15:07 mailgw2 systemd[1]: Failed to start postgresql@15-main.service - PostgreSQL Cluster 15-main.
root@mailgw2:~#

下記ファイルを vi 等のエディターで編集。

vi /etc/postgresql/15/main/postgresql.conf

下記のようにエラーになってる箇所をコメントアウト。

# These settings are initialized by initdb, but they can be changed.
#lc_messages = 'en_US.UTF-8'                    # locale for system error message
                                        # strings
#lc_monetary = 'en_US.UTF-8'                    # locale for monetary formatting
#lc_numeric = 'en_US.UTF-8'                     # locale for number formatting
#lc_time = 'en_US.UTF-8'                                # locale for time formatting

PostgreSQLさんのクラスターを再起動。

root@mailgw2:~# systemctl restart postgresql@15-main.service
root@mailgw2:~# systemctl status postgresql@15-main.service
● postgresql@15-main.service - PostgreSQL Cluster 15-main
     Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; preset: enabled)
     Active: active (running) since Sun 2024-06-16 05:20:25 JST; 3s ago
    Process: 794 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 15-main start (code=exited, status=0/SUCCESS)
   Main PID: 799 (postgres)
      Tasks: 9 (limit: 4624)
     Memory: 33.2M
        CPU: 1.137s
     CGroup: /system.slice/system-postgresql.slice/postgresql@15-main.service
             ├─799 /usr/lib/postgresql/15/bin/postgres -D /var/lib/postgresql/15/main -c config_file=/etc/postgresql/15/main/postgresql.conf
             ├─800 "postgres: 15/main: checkpointer "
             ├─801 "postgres: 15/main: background writer "
             ├─803 "postgres: 15/main: walwriter "
             ├─804 "postgres: 15/main: autovacuum launcher "
             ├─805 "postgres: 15/main: logical replication launcher "
             ├─808 "postgres: 15/main: root Proxmox_ruledb [local] idle"
             ├─810 "postgres: 15/main: root Proxmox_ruledb [local] idle"
             └─815 "postgres: 15/main: root Proxmox_ruledb [local] idle"

 6月 16 05:20:17 mailgw2 systemd[1]: Starting postgresql@15-main.service - PostgreSQL Cluster 15-main...
 6月 16 05:20:25 mailgw2 postgresql@15-main[794]: Warning: connection to the database failed, disabling startup checks:
 6月 16 05:20:25 mailgw2 postgresql@15-main[794]: psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  database locale is incompatible with operating system
 6月 16 05:20:25 mailgw2 postgresql@15-main[794]: DETAIL:  The database was initialized with LC_COLLATE "en_US.UTF-8",  which is not recognized by setlocale().
 6月 16 05:20:25 mailgw2 postgresql@15-main[794]: HINT:  Recreate the database with another locale or install the missing locale.
 6月 16 05:20:25 mailgw2 systemd[1]: Started postgresql@15-main.service - PostgreSQL Cluster 15-main.
root@mailgw2:~#

「管理」→「キュー」→「キューを開放」し、何とかメール配信されるようになった。
メールクライアントのサンダーバードさんが最近静かだったのはこれが原因だったとわ。

特に何も設定してなかったかと思うけど、最近 Mail Gateway のアップデートを実施したのが要因だった可能性もある。

最悪、前バージョンのMail Gatewayインスタンスを再稼働するか、新規でインストールを考えてたけど、メール配信されるようになって良かったよ。

と言うわけで、今後の為にメモ。

因に、メール確認しようとしていたメールは案の定スパム扱いされて隔離されてたw

コメント

タイトルとURLをコピーしました