🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

解決済

1回答

2295閲覧

CentOS7.9,postfix,dovecot,mysql(MariaDB),postfixadminのバーチャル環境でのmailman送受信について。

Hal.

総合スコア9

Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

0クリップ

投稿2021/02/10 10:44

編集2021/02/14 09:22

Hal.と申します。

以前別スレッド・・・

https://teratail.com/questions/317304
https://teratail.com/questions/320475

・・・では御世話になりました。

その後、お陰様で何とかSSL対応したバーチャルドメイン環境でメール送受信が出来る段階まで来る事が出来ました。

当方のサーバは365d/24h外部公開となっており、複数の既存ユーザが外部からメール・メーリングリストの送受信を行っている事もあり、実験環境への切り替え、及び、元の環境への切り替えは設定ファイル群・・・

/etc/postfix/ /etc/dovecot/ /etc/sasl2/ /etc/mailman/

のフォルダバックアップ&リストア、及びパッケージ再起動

#systemctl restart saslauthd #systemctl restart mariadb #systemctl restart postfix #systemctl restart dovecot #systemctl restart mailman /usr/lib/mailman/bin/check_perms -f

・・・で、一時的に環境を切り替え、昼間で利用が少ない時に実験、夕刻ぐらいには元の環境に戻してリブートといったやり方で本件の動作確認を行っています。

また、CentOS7.9,postfix,dovecot,mysql(MariaDB),postfixadmin等linuxパッケージは全て固定IP1の単一サーバ(PC)上で動いています。

アクセス確認は同じローカルネット192.168.0.x内の別Windows10(x64)PC、及び、その上のメーラとしてSeamonkey(v2.53.6)を使って検証しています。

CentOS7.9サーバ上での各パッケージバージョンは以下の通りです。

(「Writening - テキスト共有サービス」の場をお借りしてます) https://writening.net/page?pzrvcf

現時点でpostfixadminでの登録(mysql=MariaDB)へは

<ドメイン登録>
メインドメイン「example.com」
サブ(バーチャルドメイン)「example.jp」

<メールアドレス登録>
メインドメイン「example.com」配下の「mainfoo@example.com
サブ(バーチャルドメイン)「example.jp」配下「subfoo@example.jp

を登録してあり、バーチャルドメイン環境のセッティングに切り替えた際には・・・

/home/vmail/(ドメイン名)/(ユーザ名)/{cur,new,tmp}

・・・のnewフォルダに受信メールが配送されることを「mainfoo@example.com」「subfoo@example.jp」共に確認しており、これらスプールに配送されたメールはWindowsPCのメーラで受信出来ることも確認済みです。また、この2つのメールアドレスからの他のアドレスや外部アドレスに対しても送受信が問題無く出来る事まで確認済みです。

<現在困っている事(質疑)>
SSL対応したバーチャルドメイン環境で、WinPCクライアント、及びスマートフォンから内部・外部アドレスへのメールの送受信は、postfixadminにて登録したドメイン・アドレス・パスワードで問題無く出来ているのですが、ここにmailman(メーリングリスト)が絡むと、メーリングリストアドレスに対して送受信が出来なくなりました。

具体的なテスト内容としては「mainfoo@example.com」から、テスト用のメーリングリスト「admin-ml@example.com」への送信を行いテストしてました。

この「admin-ml@example.com」のリストユーザには「mainfoo@example.com」や、外部アドレス、携帯キャリアアドレスなど複数のメールアドレスが入っており、ローカルドメイン環境の際には特に問題無く(本人「mainfoo@example.com」に対しても送信した物が配信される設定として)リストユーザ全員へ配送が出来ておりました。

各種postfixadmin&mailmanの参考事例ではメーリングリスト名が「hoge1-ml@list.example.com」とされており、当方ではこれを「hoge1-ml@example.com」としたい(多数有るメーリングリスト名を変更したくない)のです。
つまり、メーリングリストは新たなバーチャルドメイン側「example.jp」で稼動させる予定は無く、「hoge1-ml@example.com」「hoge2-ml@example.com」と、元々あったメインドメイン「example.com」側でのみの稼動とさせたいのです。
(但しpostfixadminの仕様上、メインドメイン「example.com」もバーチャルドメインとして登録・管理しています)

本日インターネット上での事例を参考に設定変更して稼働させてみると、メールログでは"unknown user"としてはねられていました。
設定をいじりながら行っていたので、参考になるかどうか不明ですが、メールログ(/var/log/mail/mail.log)の一部を下記に載せます。

(「Writening - テキスト共有サービス」の場をお借りしてます) https://writening.net/page?KfJrMd

postfixのmain.cfとmailmanのmm_cfg.pyあたりの設定なのかな・・・?とは思い、いろいろ試してみたのですが、スキル・知見不足の私ではどうにもならない状況となっています。

何卒、解決に向かえるようご教示賜りたく、よろしくお願いいたします。
追加で必要なログ、設定ファイル(postconf-n?などございましたら合わせてご指示下さいませ)

---
2021/02/01追記

ご教示を受けた内容で、設定変更等を行いましたが、バーチャル環境でのメール送受信には影響なかったものの、mailmanのメーリングリスト「admin-ml@example.com」へは「Unknown User」となり送信出来ませんでした。
(後先になり恐縮ですが)下記に実験環境時の設定ファイル群・ログ等を追記いたします。

以下、postconf -n、doveconf -n、dovecotログ(/var/log/dovecot.log)、mailログ(/var/log/mail/mail.log)、/etc/mailman/mm_cfg.py、/etc/postfix/sql/配下のファイル詳細です。

(postfix,dovecot,postfixadmin.mailman実験中 SSL対応、バーチャル環境) postconf -n https://writening.net/page?gpswZT doveconf -n https://writening.net/page?SFbuih dovecotログ https://writening.net/page?kzfjP4 mailログ https://writening.net/page?kaLCew mm_cfg.py https://writening.net/page?UzBYYb /etc/postfix/sql/配下のファイル群 https://writening.net/page?3jEgDy

2021/02/14追記
どうやら本件懸案事項がクリア出来たようです。

以下、設定変更後の実験結果をご報告いたします。

バーチャルドメイン(DNS登録済み)・バーチャルメールーザ(postfixadmin登録)によるメール送受信テスト。

from 「mainfoo@example.com」 to 「external@external.com」  メインドメインのメインユーザから外部プロバイダアドレスへの送信(及びその返信)テストOK
from 「mainfoo@example.com」 to 「subfoo@example.jp」 メインドメインのメインユーザからサブドメインのバーチャルユーザ(postfixadmin登録)への送信(及びその返信)テストOK
from 「mainfoo@example.com」 to 「mainfoo@example.com」  メインドメインのメインユーザから自分自身への送信(及びその返信)テストOK
from 「mainfoo@example.com」 to 「admin-ml@example.com」  メインドメインのメインユーザからメインドメインのメーリングリストへの送信(及びその返信)テスト、配信含めOK
from 「mainfoo@example.com」 to 「mobile@mobilecarrier.ne.jp」  メインドメインのメインユーザからモバイルキャリアメールへの送信(及びその返信)テストOK

from 「subfoo@example.jp」 to 「external@external.com」  サブドメインのサブユーザから外部プロバイダアドレスへの送信(及びその返信)テストOK
from 「subfoo@example.jp」 to 「mainfool@example.com」  サブドメインのサブユーザからメインドメインのメインユーザ(postfixadmin登録)への送信(及びその返信)テストOK
from 「subfoo@example.jp」 to 「subfoo.example.jp」  サブドメインのサブユーザから自分自身への送信(及びその返信)テストOK
from 「subfoo@example.jp」 to 「admin-mll@extample.jp」 サブドメインのサブユーザからメインドメインのメーリングリストへの送信(及びその返信)テスト、配信含めOK
from 「subfoo@example.jp」 to 「mobile@mobilecarrier.ne.jp」  サブドメインのメインユーザからモバイルキャリアメールへの送信(及びその返信)テストOK

<サブドメインの新アカウントテスト>
subfoo2@example.jpを( 「ようこそメールの送信」 チェックボックスにチェックして)postfixadminで作成する
-> 「/home/vmail/example.jp/」配下に新フォルダ「subfoo2」が自動作成され、
その配下newフォルダにようこそメールがスプールされ、WinPCメーラからメール送受信が出来る事を確認。

<メインドメインの新アカウントテスト>
mainfoo2@example.comを( 「ようこそメールの送信」 チェックボックスにチェックして)postfixadminで作成する
-> 「/home/vmail/example.com/」配下に新フォルダ「mainfoo2」が自動作成され、
その配下newフォルダにようこそメールがスプールされ、WinPCメーラからの受信が出来る事を確認。

<メインドメインで新規メーリングリスト作成~配信テスト>
mailman/adminにて新規メーリングリスト「admintest-ml@example.com」を作成。
リスト会員として・・・
mainfoo@example.com
mainfoo2@example.com
subfoo@example.jp
subfoo2@example.jp
external@external.com
mobile@mobilecarrier.ne.jp
・・・を登録※。

各アカウントから「admintest-ml@example.com」へテストメールを送信し、送信元及び各アカウントに配信される事を確認。
各アカウントに配信されたメールから送信元個人アドレス、及びリストアドレスへの返信を確認。

以上、バーチャルドメイン・バーチャルメールユーザのメール送受信、及び、必要としていた、メインドメイン「example.com」での既存メーリングリストの正常稼動がほぼ確認出来ました。

昨年末から2ヶ月以上悩み苦しんでいた懸案が本日解決できました。ご教示戴きました各位に大感謝です。
本当にありがとうございました_(^_^)_

P.S1:実働では上述のように問題無いのですが、/var/log/secure/に下記のようなログが残っています。
これは何故でしょう?
(どこかで不要なpam認証設定が残存している?)

Feb 14 17:40:11 example auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=mainfoo@example.com rhost=192.168.0.51 Feb 14 17:42:02 example auth: pam_unix(dovecot:auth): check pass; user unknown Feb 14 17:42:02 example auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=mainfoo2@example.com rhost=192.168.0.51 Feb 14 17:42:17 example auth: pam_unix(dovecot:auth): check pass; user unknown Feb 14 17:42:17 example auth: pam_unix(dovecot:auth): authentication failure; logname= uid=0 euid=0 tty=dovecot ruser=subfoo@example.jp rhost=192.168.0.51 Feb 14 17:42:17 example auth: pam_unix(dovecot:auth): check pass; user unknown

P.S2:下記は想定外の追加実験(サブドメインにメーリングリスト的アドレスを登録し、サブドメインでメーリングリストが稼動するかも?)です。

subfooml(@example.jp)アドレスをpostfixadminで追加(「ようこそメール送信」にチェックする)  ->この時点で/home/vmail/配下にsubfoomlフォルダが作成され、その配下newフォルダに「ようこそメール」がスプールされている事を確認。 mainman/adminで新規メーリングリスト subfoomlを作成(mailman的には「subfooml@example.com」だと認識してるはず)。 mailmanのリスト管理画面「全体的オプション」にて「メールの送信に使うホスト名(ドメイン名) (host_nameの詳細)」をデフォルトの「example.com」から「example.jp」に変更 メーリングリスト会員として※を「まとめて入会登録」する 「mainfoo@example.com」から「subfooml@example.jp」へメール送信した時の挙動を確認。  ->メーラからの送信はできたが、「subfooml@example.jp」のスプールにはメールが溜まるがmailmanへは渡らない(配信されない)  ->postfix的にはバーチャルドメインとしてのサブドメイン「example.jp」の一般ユーザとして扱われる。 「mainfoo@example.com」から「subfooml@example.com」へメール送信した時の挙動を確認。  ->メーラからの送信時点でメールサーバが下記エラーを出し、送信出来ない。 postfix/smtpd[31933]: NOQUEUE: reject: RCPT from WinPC[192.168.0.51]: 550 5.1.1 <subfooml@example.com>: Recipient address rejected: User unknown in virtual mailbox table; from=<mainfoo@example> to=<subfooml@example.jp> proto=ESMTP helo=<[192.168.0.51]>  ->メインドメイン「example.com」配下に「subfooml」というアドレスは登録されて無いので当然の挙動。 postfixadminにてメインドメイン「example.com」配下にsubfooml(@example.com)というメールアドレスを追加(「ようこそメール送信」にチェックする)  ->「ようこそメール」がpostfixに渡り、その後mailmanに渡り、※の配信先リストに「subfooml@example.jp」からメーリングリストヘッダが付加され配信された。  ->この際、配信されたメールヘッダはfrom「subfooml@example.jp」 replyto「subfooml@example.jp」であった。  (この1通のみメーリングリスト配信がされた) メーラの「返信」を使い、「subfooml@example.jp」へ返信メールを送信してみる。  ->/home/vmail/配下の「subfooml@example.jp」のスプールフォルダにはメールが入ったがmailmanには渡らない。 という結果でした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Mailman は local 配送(mydestination→alias_maps→Mailman)、postfixadmin は virtual 配送(virtual_mailbox_maps)なので、普通は同じドメインを使うことはできません。

メインドメイン(example.com)を一旦すべて virtual で処理し、メーリングリストだけ local 配送に転送することで可能かもしれません。

######## /etc/mailman/mm_cfg.py (抜粋) MTA = 'Postfix' POSTFIX_STYLE_VIRTUAL_DOMAINS = ['example.com'] VIRTUAL_MAILMAN_LOCAL_DOMAIN = 'mail.example.com' # mydestination に含まれるもの SMTPHOST = '127.0.0.1' SMTPPORT = '25'
[root]# /usr/lib/mailman/bin/genaliases →/etc/mailman/virtual-mailman{,.db} が作成される。 ('リスト@example.com'→'リスト@mail.example.com' の変換) [root]# /usr/lib/mailman/bin/check_perms -f [root]# systemctl restart mailman
######## /etc/postfix/main.cf (抜粋) virtual_alias_maps = hash:/etc/mailman/virtual-mailman, # ここを追加 proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
[root]# postfix check →何も出力されないことを確認 [root]# systemctl reload postfix

投稿2021/02/10 15:21

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hal.

2021/02/11 08:08

TaichiYanagiyaさま、早速のコメント感謝いたします。 本日2/11に、実験環境(SSL対応バーチャルドメイン環境での送受信可能)に戻し、ご教示戴いた点を変更し追試しましたが、結果として配送NGでした。本文中に追記いたしましたので、ご確認の程、よろしくお願いいたします。
TaichiYanagiya

2021/02/11 14:06

設定は合っているように見えます。 @mail.example.com に変換された後、local で処理されることを期待していましたが、maillog を見ると virtual で処理されていて(DB に存在しないので) unknown user となっています。 推測ですが、postfixadmin のドメインに mail.example.com が登録されているのではないでしょうか? P.S. 設定やログは要点だけでも質問文に記載した方がいいと思います。同じように困っている人が検索してひっかかるように。
Hal.

2021/02/12 11:03

TaichiYanagiyaさま。 本日はほぼ半日("postfixadmin" "mailman")のダブルワードにて)ググっておりました。 結果として日本語での情報がとても少ないです(泣) また、それぞれの情報にも、かなりの相違があり、どれが正しい(正しいと言うより、今回こちらのやりたい事を実現する為の解を何処にある)のか、理解出来ませんでした。 >推測ですが、postfixadmin のドメインに mail.example.com が登録されている 現時点でpostfixadminに登録されているドメインは「example.com」(元々のメイン)と「example.jp」のみで、それぞれのドメインに対してメールアドレスとしても「mainfoo(@example.com)」と「subfoo(example.jp)」のみを登録している状態です。 (よってバーチャルドメイン環境切り替えテスト時は、他のローカルユーザへの外部からのメール配信 も停止し、実験前の通常環境に戻すまで配信遅延してしまいます) ご推察の件ですが、サブドメイン「mail.example.*」の登録はありません。ちなみに「admin-ml(@example.com)」のアドレス登録もありません。 ひょっとしてpostfixadminでメインドメインである「example.com」配下に「admin-ml」のアドレス登録が必要でしょうか? またググった中ではpostfixのmain.cf内「mydestination=」は右辺をNULLとして記載する・・といったコンテンツもありました。ちなみにmailmanとの連係前の段階(バーチャルドメインでの送受信可能な設定完了の段階)で、この右辺をNULLにすると、外部からの「mainfoo@example.com」宛のメールがpostfixに「Relay access denied」としてはねられてしまう状態です。 >P.S. 設定やログは要点だけでも質問文に記載した方がいい これはWritening側では無く、ファイル名やログ名などを質問文側に出しておくべきという理解でよろしいでしょうか? それであれば後日解決Close前に追記したいと思います。
TaichiYanagiya

2021/02/12 14:44

"local_transport = virtual" これが原因ですね。
Hal.

2021/02/13 08:16

TaichiYanagiyaさま。 本日は諸処事情で実験できないのですが・・・ >"local_transport = virtual" これが原因ですね。 これまでにご教示戴いたセッティングに加え・・・ "local_transport = local" ・・・にすれば良いと言う事でしょうか? 本件明日にでも試してみたいと思います。
TaichiYanagiya

2021/02/13 11:51

"local_transport = virtual" を削除、または、コメントアウトでいいと思います。
Hal.

2021/02/14 09:26

TaichiYanagiyaさま。 >"local_transport = virtual" を削除、または、コメントアウト コメントアウトし実験したところ、postfixadmin&mysqlバーチャルドメイン環境においても、無事ローカルで稼動していたメーリングリストが従来通り稼動できるようになりました。ご教示誠にありがとうございました。詳細は本文側に追記いたしました。 尚、何度も恐縮なのですが、P.S1として追記した点(/var/log/secureのpamエラーログ)に関してご教示願いたくお願いいたします。
TaichiYanagiya

2021/02/14 13:37

passdb は複数の参照先を設定できます。 現在、"driver = pam", "driver = sql" が設定されていて、pam の方を先に参照しているためでしょう。 CentOS 7 の標準の設定ファイルであれば、/etc/dovecot/conf.d/10-auth.conf ファイルの「!include auth-system.conf.ext」で設定されるので、コメントアウトするといいと思います。
Hal.

2021/02/15 09:51

TaichiYanagiyaさま、 >/etc/dovecot/conf.d/10-auth.conf ファイルの「!include auth-system.conf.ext」で設定されるので、コメントアウト ご教示ありがとうございました。 早速・・と切り替えると、メーラ側で大量のエラーが(-_-;) unixローカルユーザとしてのみ存在していた各種家電機器や別アカウントをpostfixadmin上で登録してなかった事に気付きました。 この作業はちょっと手間がかかるので、後日行いたいと思います。 ご教示戴いた事で/var/log/secureで発生していたエラーに関しては終息しましたのでこれでCloseさせて頂きたいと思います。 本件、長らくの間フォロー頂き、本当にありがとうございました_(_ _)_
Hal.

2021/02/15 09:57

ふと気付いて暫定対処してみました。 includeの順番として「auth-sql.conf」を前に持ってきて、その下段に「auth-system.conf.ext」と逆順にする事で、急場しのぎはなりそうです。 本当にどうもありがとうございました_(^_^)_ --- ## !include auth-sql.conf.ext ##!include auth-sql.conf.ext ## ##↓本来は「auth_mechanisms = plain login」の次の行にある。今回sql認証を先にして、ダメだったらsystemに回すという順にしたため、ここに追記。 !include auth-system.conf.ext
Hal.

2021/03/03 16:13

すみません、新たなQを上げる事になってしまいました。 お気づきになられましたらご査読いただきますようお願いいたします_(__)_ https://teratail.com/questions/325797
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問