iRedMail: ドメイン エイリアスが一部の外部メールで機能しない (分音記号/punycode)

iRedMail: ドメイン エイリアスが一部の外部メールで機能しない (分音記号/punycode)

メイン ドメイン用の iRedMail サーバーを正常にセットアップした後、次の手順に従ってセカンダリ ドメインをエイリアスとして追加しようとしました。https://docs.iredmail.org/sql.add.alias.domain.html

これではまだうまくいかなかったので、セカンダリ ドメインを /etc/postfix/main.cf に追加しました。

virtual_alias_domains = domain2.tld
virtual_alias_maps = hash:/etc/postfix/virtual

注: virtual_alias_maps の下にある既存の mysql エントリは削除していません。

そして、マッピングを /etc/postfix/virtual に入力し、その後に「postmap /etc/postfix/virtual」を実行しました。

@domain2.tld     @domain1.tld

これはサーバー上で内部的に動作しています。[メールアドレス]送信可能[メールアドレス]そして、ユーザー2は自分のメールボックスにメールを受信します。外部のメールも、[メールアドレス]

残念ながら、セカンダリ ドメインへの外部メールでは機能しません。/var/logs/mail.log に次の行が見つかりました。

postfix/smtpd[5541]: NOQUEUE: reject: RCPT from mail-oi1-x231.google.com[2607:f8b0:4864:20::231]: 451 4.3.5 <[email protected]>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-oi1-x231.google.com>

そして:

postfix/smtpd[5644]: warning: problem talking to server 127.0.0.1:12340: Connection timed out

ポート 12340 で dovecot がリッスンしています:

dovecot    513      root   67u  IPv4  17087      0t0  TCP 127.0.0.1:12340 (LISTEN)

私の dovecot ログには、次の行が繰り返し表示されます。

dovecot: quota-status: Error: quota-status: Client sent invalid recipient address: Invalid character in path

さまざまな外部メールホスティング業者でさらにテストを行った結果、セカンダリドメインに送信されたメール 4 通のうち 2 通が到着していることに気付きました。GMail と Hotmail は到着しませんでしたが、会社の Exchange と他の Web プロバイダーは到着しました。

そして、そこで行き詰まっています。次の 2 つのうちの 1 つを疑っています。必要な設定を単に見逃したか (Debian でメール サーバーをセットアップしたことがないので、その可能性が非常に高い)、またはセカンダリ ドメインが原因で dovecot エラーが発生しているかのどちらかです。セカンダリ ドメインにはウムラウト (ä/ö/ü) が含まれており、これが問題を引き起こす可能性があることはよくわかっています。そのため、私はドメインの punycode 形式バージョンも所有しています。そのため、ウムラウト付きのセカンダリ ドメインを設定に追加するたびに、その点に関する問題を解決すると想定して、その punnycode バージョンも追加しました。

iRedMail/postfix/dovecot/whateverelseisinvolved は、punnycode/umlauts 自体では正常に動作しているようですが、メールの半分だけが失われるため、送信者に依存しているようです (送信者はエラーを受け取りません)。この問題をさらに詳しく調べるには、原因やどのログを確認すればよいか、推測できますか? 明らかな設定を単に忘れただけでしょうか?

正しい方向へのどんな後押しでも大歓迎です。

よろしく、スノット

==== 基本情報 ====

  • iRedMail バージョン: 1.4.0 MARIADB エディション
  • Linux/BSD ディストリビューション名とバージョン: Debian GNU/Linux 10 (buster) - 10.10
  • 使用DB: MySQL (MariaDB)
  • ウェブサーバー: Nginx

==== 編集 ====

基本的なセットアップに関しては、Debian 10をクリーンインストールした後、このガイドの手順に従いました。https://www.linuxbabe.com/mail-server/debian-10-buster-iredmail-email-server

ガイドから変更される特定の構成は、投稿に記載されています。また、punnycode でメイン ドメインとセカンダリ ドメインを含む証明書を発行しました。

起動時のさまざまなログは次のとおりです。

ログファイル:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s amavis[573]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix
Aug 14 14:24:39 s amavis[1915]: Net::Server: Group Not Defined.  Defaulting to EGID '121 121'
Aug 14 14:24:39 s amavis[1915]: Net::Server: User Not Defined.  Defaulting to EUID '113'
Aug 14 14:24:39 s amavis[1915]: No ext program for   .F, tried: unfreeze, freeze -d, melt, fcat
Aug 14 14:24:39 s amavis[1915]: No ext program for   .zoo, tried: zoo, unzoo
Aug 14 14:24:39 s amavis[1915]: No decoder for       .F   
Aug 14 14:24:39 s amavis[1915]: No decoder for       .zoo 
Aug 14 14:24:39 s amavis[1915]: Using primary internal av scanner code for clamav-socket
Aug 14 14:24:39 s amavis[1915]: Found secondary av scanner clamav-clamscan at /usr/bin/clamscan

ログファイル:

Aug 14 14:24:26 s dovecot: master: Dovecot v2.3.4.1 (f79e8e7e4) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global
Aug 14 14:24:43 s dovecot: stats: Error: (stats-reader): didn't reply with a valid VERSION line: EXPORT#011global

grep postfix /var/log/syslog:

Aug 14 14:24:36 s postfix/postfix-script[1637]: warning: symlink leaves directory: /etc/postfix/./makedefs.out
Aug 14 14:24:37 s postfix/postfix-script[1819]: starting the Postfix mail system
Aug 14 14:24:37 s postfix/master[1821]: daemon started -- version 3.4.14, configuration /etc/postfix

postfix main.cf でクォータ機能を無効にし、SMTPUTF8 を有効にしましたが、mail.log の起動時に行が追加される以外は目立った変化はありません。

Aug 14 14:59:46 s amavis[571]: starting. /usr/sbin/amavisd-new at host.domain1.tld amavisd-new-2.11.0 (20160426), Unicode aware, LC_ALL="C", LANG="en_US.UTF-8"

残念ながら、動作は依然として同じです。ログをさらに分析した結果、プロバイダーから送られてくるメールは、punycode 経由で送信されているように見えることに気付きました (ウムラウト/非 ASCII 文字を含むドメインに明示的に送信した場合でも)。一方、GMail は、実際にはウムラウトを含むドメインにメールを送信します (受信者のメール アドレスで punycode 形式を明示的に使用した場合でも、非 punycode)。したがって、非 ASCII 文字を処理するようにサーバーに教えるか、Google に punycode 経由で送信するように教える必要があります。または、ウムラウトを punycode に変換するようにサーバーに教える必要があります。オプション 2 は明らかに実際にはオプションではないため、1 または 3 になります。

GMail 以外のホスティング業者からの mail.log エントリ:

postfix/amavis/smtp[2300]: 4Gn0zh0z4FzLnSJ: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=4, delays=0.1/0/0.01/3.9, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4Gn0zm04JHzLxc0)

GMail メールからの mail.log エントリ:

Aug 14 15:06:44 s postfix/smtpd[2281]: warning: problem talking to server 127.0.0.1:12340: Connection timed out
Aug 14 15:06:44 s postfix/smtpd[2281]: NOQUEUE: reject: RCPT from mail-ot1-x32b.google.com[2607:f8b0:4864:20::32b]: 451 4.3.5 <user@dömain2.tld>: Recipient address rejected: Server configuration problem; from=<[email protected]> to=<user@dömain2.tld> proto=ESMTP helo=<mail-ot1-x32b.google.com>

答え1

まだ完全な解決策が見つからないため (Postfix でのアドレス書き換えは機能するかもしれませんが、この話の悲しい結末になるでしょう)、私は診断手順を回答にまとめています:

  • 取得する効果的コマンドによってダンプされる構成やpostfix -npostfix -Mメール サーバーの場合は、さまざまなサービス (主に amavis) が統合される方法を明確に理解する必要があります。

  • ローカル部分、非アドレス ヘッダー、ドメイン名内の非 ASCII を個別にテストします (Punycode でエンコードされて のように始まる A-Label やxn--、非 ASCII 文字を直接含む Unicode などがあります)。

  • Postfix で無効のままにしておきますSMTPUTF8- Dovecot はまだその方法で受信できるメールの処理を完全にサポートしておらず、amavis の問題解決には必須でも必ずしも役立つわけでもありません。

  • amavis$log_levelには(Debianではおそらく/etc/amavis/conf.d/)設定があり、の一部としてゼロにされる可能性がありますiRedメール分布

  • 切り替えるオプションがある場合は、amavisをbefore-queueとして実行しますメートルフィルター(ポストキューSMTPの代わりに)フィルターを使用すると、より有用なエラーや動作が明らかになる場合とそうでない場合があります。

  • amavis はいくつかの mariadb 固有の SQL+Unicode 問題を修正しました使用しているバージョン 2.11 以降では、データベース ログに有用なエラーが含まれている可能性があります。または、機能的に同一の postgres バックエンドで構成された同じスタックを比較することで除外できます (postgres は MySQL と MariaDB の Unicode 機能/バグを共有しません)。

関連情報