Sympaメーリングリストサーバの構築(マルチドメイン)¶
メーリングリストSympaの構築手順
オフィシャルのドキュメントに基づいて構築します
https://sympa-community.github.io/manual/install
メールスプールとして2つの仮想ドメインを仮想メールボックスで作成し、
Sympaの仮想ドメインをそれと別に一つ作成します。
- example01.com
メールスプール用1 - example02.com
メールスプール用2 - ml1.example.com
メーリングリスト用1 - ml2.example.com
メーリングリスト用2
環境の準備¶
- 必要なソフトウェアをインストールします
# yum install httpd mod_ssl mariadb-server postfix wget mailx telnet
- RHEL9以降は mailx → s-nail が互換パッケージ
- epelリポジトリおよびepel系パッケージをインストールします
# yum install epel-release # yum install spawn-fcgi
- RHEL9ではspawn-fcgiがないが、httpdパッケージでfast-cgiが組み込まれている模様
- バーチャルドメイン用のグループを作成します
# groupadd -g 10000 vmail
- バーチャルドメイン用のユーザを作成します
# useradd -u 10000 -g vmail -s /sbin/nologin vmail
- スプールディレクトリを作成します
# mkdir /var/spool/vmail # chown -R vmail:vmail /var/spool/vmail
Postfixの設定¶
マルチドメイン・バーチャルメールボックスでの簡易設定
- Postfixの設定を行う
# vi /etc/postfix/main.cf ----------------------------- myhostname = mail.example.com mydomain = example.com myorigin = $mydomain inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost #mydestination = $myhostname, localhost.$mydomain, localhost mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, # mail.$mydomain, www.$mydomain, ftp.$mydomain local_recipient_maps = unix:passwd.byname $alias_maps #local_recipient_maps = proxy:unix:passwd.byname $alias_maps #local_recipient_maps = #mynetworks_style = class mynetworks_style = subnet #mynetworks_style = host mynetworks = 192.168.0.0/24, 127.0.0.0/8 home_mailbox = Maildir/ virtual_mailbox_domains = /etc/postfix/virtual_domain virtual_mailbox_base = /var/spool/vmail virtual_mailbox_maps = hash:/etc/postfix/virtual_user virtual_uid_maps = static:10000 virtual_gid_maps = static:10000
- バーチャルドメイン設定ファイルの作成
スプール専用ドメイン、ML専用ドメイン両方とも作成する。# vi /etc/postfix/virtual_domain ----------------------------- example01.com example02.com ml1.example.com ml2.example.com
- バーチャルメールアドレスとバーチャルメールボックスのパスを記載する
# vi /etc/postfix/virtual_user ----------------------------- user01@example01.com example01.com/user01/Maildir/ user02@example01.com example01.com/user02/Maildir/ user03@example01.com example01.com/user03/Maildir/ user01@example02.com example02.com/user01/Maildir/ user02@example02.com example02.com/user02/Maildir/ user03@example02.com example02.com/user03/Maildir/ postmaster@ml1.example.com ml1.example.com/postmaster/Maildir/ postmaster@ml2.example.com ml2.example.com/postmaster/Maildir/
- Maildir/の末尾/は必ず必要。忘れるとロックファイルが作成できないという配送エラーになる。
- 上記のハッシュファイルを作成する
# postmap /etc/postfix/virtual_user
- サービスの登録・起動を行う
# systemctl enable postfix # systemctl start postfix
- メール送信のテストを行う
# mail user01@example01.com Subject: test test . EOT
- メール受信のテストを行う
# mail -f /var/spool/vmail/example01.com/user01/Maildir/ Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/vmail/example01.com/user01/Maildir/": 1 message 1 new >N 1 root Mon Aug 6 16:11 18/528 "test" & q "/var/spool/vmail/example01.com/user01/Maildir/" complete
- サブドメインのみでバーチャルドメインを切っている場合、maillogに下記が記載される。
main.cfのvirtual_mailbox_domainsとmydestinationの重複はできないので、mydestinationで$mydomainを削除する。warning: do not list domain mail1.example.com in BOTH virtual_mailbox_domains and relay_domains
- サブドメインのみでバーチャルドメインを切っている場合、maillogに下記が記載される。
Dovecotの設定¶
ローカルメールスプールを併設する場合のみ。メーリングリストとして送信するだけなら不要。- パッケージのインストール
# yum install dovecot
- サービス設定
# vi /etc/dovecot/dovecot.conf ----------------------------- #protocols = imap pop3 lmtp protocols = imap
- 認証設定
# vi /etc/dovecot/conf.d/10-auth.conf ----------------------------- disable_plaintext_auth = no !include auth-passwdfile.conf.ext !include auth-static.conf.ext
- パスワードファイルの設定
# vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext ----------------------------- passdb { driver = passwd-file # args = scheme=CRYPT username_format=%u /etc/dovecot/users args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/users }
- ユーザ情報ファイルの設定
# vi /etc/dovecot/conf.d/auth-static.conf.ext ----------------------------- #userdb { # driver = static # args = uid=vmail gid=vmail home=/home/%u #} userdb { driver = static args = uid=vmail gid=vmail home=/var/spool/vmail/%d/%n }
- パスワードの登録
# doveadm pw Enter new password: Retype new password: {CRAM-MD5}************ ※ユーザとマッチさせながら必要数分だけ作成する # vi /etc/dovecot/users ----------------------------- user01@example01.com:{CRAM-MD5}************ … … ※ ユーザ名:パスワード形式で羅列する
- SSL設定
# vi /etc/dovecot/conf.d/10-ssl.conf ----------------------------- #ssl = required ssl = yes
- メール設定
# vi /etc/dovecot/conf.d/10-mail.conf ----------------------------- mail_location = maildir:~/Maildir
- サービス登録・起動
# systemctl enable dovecot # systemctl start dovecot
- 動作確認
# telnet localhost 143 Trying ::1... Connected to localhost. Escape character is '^]'. * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready. 1 login user01@example01.com 設定したパスワード(非暗号化状態) 1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in 2 list "" * * LIST (\HasNoChildren) "." INBOX 2 OK List completed. 3 select INBOX * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. * 1 EXISTS * 1 RECENT * OK [UNSEEN 1] First unseen. * OK [UIDVALIDITY 1531798588] UIDs valid * OK [UIDNEXT 2] Predicted next UID 3 OK [READ-WRITE] Select completed (0.014 secs). 4 fetch 1 body[] * 1 FETCH (FLAGS (\Seen \Recent) BODY[] {529} Return-Path: <root@example.com> X-Original-To: test@example.com Delivered-To: test@example.com Received: by mail.example.com (Postfix, from userid 0) id 19D89200758A; Tue, 17 Jul 2018 12:47:43 +0900 (JST) Date: Tue, 17 Jul 2018 12:47:43 +0900 To: test@example.com Subject: test User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20180717034743.19D89200758A@mail.example.com> From: root@example.com (root) test ) 4 OK Fetch completed. 5 logout * BYE Logging out 5 OK Logout completed. Connection closed by foreign host.
Sympaのインストール¶
- Sympaのインストール
# yum install sympa sympa-httpd perl-DBI perl-DBD-MySQL
- RHEL9系で下記のようなperl等のパッケージ不足エラーが出る場合
問題 1: 競合するリクエスト - perl(File::Copy::Recursive) が提供されません sympa-6.2.72-2.el9.x86_64 に必要です
- CodeReady(開発者向けノンサポートパッケージ)に移されたパッケージが必要なので、リポジトリを有効にする
- RHEL9 の場合、ライセンス登録後に下記を実行
subscription-manager repos --enable=codeready-builder-for-rhel-9-x86_64-rpms
- Rockyなどでは、CRB(Code Ready Builder)リポジトリを有効にする
※Rocky Linux 9 の例 vi /etc/yum.repos.d/rocky.repo ------------------------------ [crb] name=Rocky Linux $releasever - CRB mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=CRB-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/$basearch/os/ gpgcheck=1 enabled=1 ←0を1にして有効化する countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
- RHEL9 の場合、ライセンス登録後に下記を実行
データベースの作成・設定¶
- MariaDBの設定に下記を追加する
# vi /etc/my.cnf ----------------------------- [mysqld] character-set-server = utf8 [client] default-character-set = utf8
- RHEL9系ではmy.cnf.d以下のserverとclient系ファイルに設定
- MariaDBを起動する
# systemctl enable mariadb # systemctl start mariadb
- 初期設定を行う
# mysql_secure_installation ----------------------------- NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
- データベースの作成
# mysql -u root -p Enter password: ----------------------------- MariaDB [(none)]> CREATE DATABASE sympa CHARACTER SET utf8; MariaDB [(none)]> GRANT ALL PRIVILEGES ON sympa.* TO sympa@localhost IDENTIFIED BY '任意のパスワード'; MariaDB [(none)]> quit
初期設定¶
- 「sympa_wizard.pl」または「sympa config create」コマンドでコンフィグファイルを生成します。(前者は旧バージョン
※ 初期配置してある「/etc/sympa/sympa.conf」を退避しておくことで、使用中の言語のコメントで再生成されます。
※ ここで設定する非仮想ドメインの設定は最終的に使用できなくなり、後述の仮想ドメイン設定のみが使用されます# sympa_wizard.pl err Conf::_set_listmasters_entry() Robot config: No listmaster defined. This is the main config. It MUST define at least one listmaster. Stopping here ** サービスの説明 ** * 基本メールドメイン名 domain [mail.example.com] : mail.example.com * リスト システム管理者の電子メールアドレス ... Email addresses of the listmasters (users authorized to perform global server commands). Some error reports may also be sent to these addresses. Listmasters can be defined for each virtual host, however, the default listmasters will have privileges to manage all virtual hosts. listmaster [your_email_address@sympa-test.example.com] : postmaster@example.com * 言語の初期値 ... Sympaが使う言語の初期値です。対応言語 (supported_language) のうちの一つ にします。 lang [en-US] : ja * 対応言語 ... ユーザインタフェースが対応する言語全て。適切な翻訳カタログがインストール されていないものは無視されます。 supported_lang [ca,cs,de,el,en-US,es,et,eu,fi,fr,gl,hu,it,ja,ko,nb,nl,oc,pl,pt-BR,ru,sv,tr,vi,zh-CN,zh-TW] : * サービスの題名 ... メーリングリストサービスの呼び名。これはウェブインタフェースのヘッダや サービスメッセージの件名に使われます。 title [Mailing lists service] : * Sympaの表示名 ... このパラメータは、Sympa自身が送るメッセージの「From:」ヘッダフィールドの 表示名に使います。 gecos [SYMPA] : * 従来キャラクタセットへの対応 ... 「有効」(on) に設定すると、charset.conf(5) 設定ファイルに基づく従来文字 コード対応を有効にします。 ... 言語によっては、電子メールメッセージで従来文字コード (キャラクタセット) を使うほうが望ましいです (たとえば日本語でのISO-2022-JP)。 legacy_character_support_feature [off] : on ** データベース関連 ** * データベースの種類 ... Possible types are "MySQL", "PostgreSQL", "Oracle", "Sybase" and "SQLite". db_type [mysql] : * テータベースサーバのホスト名 ... With PostgreSQL, you can also use the path to Unix Socket Directory, e.g. "/var/run/postgresql" for connection with Unix domain socket. db_host [localhost] : * データベース名 ... With SQLite, this must be the full path to database file. With Oracle Database, this must be Oracle SID. db_name [sympa] : * データベース接続のユーザ名 db_user [user_name] : sympa * データベース接続のパスワード ... パスワードを使うかどうかにかかわらず、SQLサーバへのアクセスは制限してく ださい (サービスをインターネットに公開してしまっていませんか)。 db_passwd [user_password] : 任意のパスワード * Syslogサーバとの通信方式 log_socket_type [unix] : * メッセージの最大サイズ ... Incoming messages smaller than this size is allowed distribution by Sympa. max_size [5242880] : * sendmailのパス ... Absolute path to sendmail command line utility (e.g.: a binary named "sendmail" is distributed with Postfix). ... Sympa expects this binary to be sendmail compatible (exim, Postfix, qmail and so on provide it). sendmail [/usr/sbin/sendmail] : ** 権限 ** * リストを作成できるのは ... Defines who can create lists (or request list creation) by creating new lists or by renaming or copying existing lists. create_list [public_listmaster] : * ブラックリストの使用 ... ブラックリストを適用する操作 (複数あるときはカンマで区切る)。このパラ メータを「何もしない (none)」に設定すると、ブラックリスト機能は画面に出なく なります。 use_blacklist [send,create_list] : * List of required domains for list owner addresses ... Restrict list ownership to addresses in the specified domains. This can be used to reserve list ownership to a group of trusted users from a set of domains associated with an organization, while allowing moderators and subscribers from the Internet at large. owner_domain [] : * Minimum number of owners for each list that must match owner_domain restriction ... Minimum number of owners for each list must satisfy the owner_domain restriction. The default of zero (0) means *all* list owners must match. Setting to 1 requires only one list owner to match owner_domain; all other owners can be from any domain. This setting can be used to ensure that there is always at least one known contact point for any mailing list. owner_domain_min [0] : ** 投稿保管庫 ** * 配送したメッセージを投稿保管庫に格納する ... 有効にすると、リストを通じて配信されるメッセージは投稿保管庫に入ります。 そうでなければ投稿保管庫は無効になります。 ... なお、このパラメータを無効にしても過去の投稿保管庫は削除されず、リスト毎 のアクセス設定に従って閲覧できます。 process_archive [off] : * カスタムのアーカイブ プログラム ... MHonArcの代わりにカスタム投稿保管ソフトウェアを使うようにする。パラメー タの値はカスタム投稿保管ソフトウェアのファイルシステム上での絶対パス。 ... Sympaはこのファイルを次の2つの引数をつけて実行します。 ... 「--list リスト名」 ... ドメイン部を含むメーリングリストのアドレス。 ... 「--file ファイル名」 ... 投稿保管庫に入れるメッセージへの絶対パス。 custom_archiver [] : ** 配送エラー管理とメッセージ追跡 ** * Default bounce warn rate ... 配送したメッセージのうち配送エラーを起こした数 (パーセント) がこの値を超 えたら、リストのオーナーに警告を送ります。 bounce_warn_rate [30] : ** タグ付けによるスパム排除 ** * スパムの印になるヘッダフィールド ... スパムフィルタ (SpamAssassinやj-chkmailなど) がスパムを検出したことを示 すヘッダフィールドを追加しているとき、そのヘッダフィールドの名前 (たとえば 「X-Spam-Status」)。 antispam_tag_header_name [X-Spam-Status] : * スパムの印になるヘッダフィールドを検査する正規表現 ... そのヘッダでメッセージがスパムかどうか確認する正規表現 (たとえば 「Yes」)。 antispam_tag_header_spam_regexp [^\s*Yes] : * スパムか非スパムかを判定する正規表現 ... そのヘッダフィールドでメッセージがスパム*ではない*かどうか確認する正規表 現 (たとえば「No」)。 antispam_tag_header_ham_regexp [^\s*No] : * 結果を通知するヘッダフィールド ... メッセージがスパム排除ソフトウェアで処理されており、そのソフトウェアがあ るヘッダを追加するとします。このパラメータを使って、メッセージがスパムかどう かの状態 (「ham」、「spam」、「unsure」) を決定する特別なシナリオを選択しま す。このパラメータは次のパラメータを置き換えます。antispam_tag_header_name、 antispam_tag_header_spam_regexp、antispam_tag_header_ham_regexp。 spam_status [x-spam-status] : * 投稿を保管するディレクトリ ... Where to store HTML archives. This parameter is used by the "archived.pl" daemon. It is a good idea to install the archive outside the web document hierarchy to prevent overcoming of WWSympa's access control. arc_path [/var/lib/sympa/arc] : ** ウェブ インタフェースのパラメータ ** * ウェブ インタフェースのURLプリフィクス ... ウェブ インタフェースでURLに使われます。 wwsympa_url [http://sympa-test.example.com/sympa] : https://ml.example.com/sympa * 静的コンテンツのURL ... HTTPサーバはこのパスを static_content_path のディレクトリと対応させなけ ればいけません。 static_content_url [/static-sympa] : ** ウェブ インタフェースのパラメータ――外見 ** * メインページの種類 ... 「lists」でリストの一覧ページ。「home」でホームページ。 default_home [home] : * ウェブ投稿保管庫の初期の表示順 ... thrd: Threaded index. ... mail: Chronological index. archive_default_index [thrd] : * 共有文書置き場の容量制限の初期値 default_shared_quota [] : * HTMLエディタを使う ... 「on」に設定すると、利用者がJavaScriptのWYSIWYGエディタを使ってHTMLで メッセージを投稿できるようになります。 use_html_editor [0] : ** S/MIME および TLS ** * 信頼できる認証局の証明書を含むファイル ... This can be used alternatively and/or additionally to "capath". cafile [] : * 信頼できる認証局の証明書が置かれるディレクトリ ... CA certificates in this directory are used for client authentication. ... The certificates need to have names including hash of subject, or symbolic links to them with such names. The links may be created by using "c_rehash" script bundled in OpenSSL. capath [] : * リストの秘密鍵の暗号化パスワード ... 設定しなければ、Sympaは秘密鍵を暗号化されていないものとして扱います。 key_passwd [] : ** ウィルス検出プラグイン ** * ウィルススキャナエンジンのパス ... 対応しているウィルス検出ソフトウェアは、Clam AntiVirus (clamscan、 clamdscan)、McAfee (uvscan)、Fsecure (fsav)、Sophos、AVP、Trend Micro/ VirusWall antivirus_path [] : * ウィルス検出ソフトウェアのコマンドライン引数 antivirus_args [] : ** パスワード強度検査 ** * パスワード強度検査 ... 利用者のパスワードの強度を検査する方法。Data::Passwordによるオプションを 設定できます。 <http://search.cpan.org/~razinf/Data-Password-1.07/Password.pm#VARIABLES> password_validation [] : /etc/sympa/sympa.conf を更新しました。 前のバージョンは /etc/sympa/sympa.conf.2018-07-20-16-35-38 として保存してありま す。
- データベースの投入
# sympa.pl --health_check
ログの作成¶
- 最初に空のログファイルを作成・設定する
# touch /var/log/sympa.log # chmod 640 /var/log/sympa.log
- rsyslogをリロードする
# systemctl restart rsyslog
- ログ出力のテスト
# perl /usr/share/sympa/bin/testlogs.pl (6.2.72以降) sympa test syslog Ok, now check logs
- ログの確認
# cat /var/log/sympa.log Jul 20 16:42:33 sympa-test sympa/testlogs[11030]: info main:: Logs seems OK, default log level 0
Sympa、Postfix連携設定¶
- list_aliases.tt2ファイルの作成
# vi /etc/sympa/list_aliases.tt2 ----------------------------- #--- [% list.name %]@[% list.domain %]: list transport map created at [% date %] [% list.name %]@[% list.domain %] sympa:[% list.name %]@[% list.domain %] [% list.name %]-request@[% list.domain %] sympa:[% list.name %]-request@[% list.domain %] [% list.name %]-editor@[% list.domain %] sympa:[% list.name %]-editor@[% list.domain %] #[% list.name %]-subscribe@[% list.domain %] sympa:[% list.name %]-subscribe@[%list.domain %] [% list.name %]-unsubscribe@[% list.domain %] sympa:[% list.name %]-unsubscribe@[% list.domain %] [% list.name %][% return_path_suffix %]@[% list.domain %] sympabounce:[% list.name %]@[% list.domain %]
- sympa.confに追記
# vi /etc/sympa/sympa.conf ----------------------------- sendmail_aliases /etc/sympa/sympa_transport aliases_program postmap aliases_db_type hash
- マップファイルを作成する
# touch /etc/sympa/transport.sympa # touch /etc/sympa/virtual.sympa # touch /etc/sympa/sympa_transport # chown sympa:sympa /etc/sympa/sympa_transport
- マップファイルのデータベースを作成
# postmap hash:/etc/sympa/transport.sympa # postmap hash:/etc/sympa/virtual.sympa # postmap hash:/etc/postfix/virtual # sympa_newaliases.pl
- postfixのmaster.cfに追記
# vi /etc/postfix/master.cf ----------------------------- sympa unix - n n - - pipe flags=hqRu user=sympa argv=/usr/libexec/sympa/queue ${nexthop} sympabounce unix - n n - - pipe flags=hqRu user=sympa argv=/usr/libexec/sympa/bouncequeue ${nexthop}
- postfixのmain.cfを編集
# vi /etc/postfix/main.cf ----------------------------- virtual_mailbox_domains = /etc/postfix/virtual_domain, hash:/etc/sympa/transport.sympa virtual_mailbox_base = /var/spool/vmail virtual_mailbox_maps = hash:/etc/postfix/virtual_user, hash:/etc/sympa/transport.sympa, hash:/etc/sympa/sympa_transport, hash:/etc/sympa/virtual.sympa virtual_alias_maps = hash:/etc/sympa/virtual.sympa, hash:/etc/postfix/virtual transport_maps = hash:/etc/sympa/transport.sympa, hash:/etc/sympa/sympa_transport virtual_uid_maps = static:10000 virtual_gid_maps = static:10000 recipient_delimiter = +
- テスト送信時、maillogに下記のようなメッセージが出る場合、mydestinationからドメインを削除する
mydestinationとvirtual_mailbox_domainsおよびrelay_domainsは重複できないが、サブドメインによる
バーチャルドメイン化で意図せず重複してしまった場合に修正が必要となる。warning: do not list domain バーチャルドメイン名 in BOTH virtual_mailbox_domains and relay_domains ----------------------------- # vi /etc/postfix/main.cf ----------------------------- #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mydestination = $myhostname, localhost.$mydomain, localhost
- テスト送信時、maillogに下記のようなメッセージが出る場合、mydestinationからドメインを削除する
- Postfixをリロードする
# systemctl restart postfix
新しい仮想ドメインの作成¶
※仮想ドメインを作成するたびに必要
- 仮想ドメインのディレクトリを作成
# mkdir -m 755 /etc/sympa/ml.example.com # touch /etc/sympa/ml.example.com/robot.conf # chown -R sympa:sympa /etc/sympa/ml.example.com # mkdir -m 750 /var/lib/sympa/list_data/ml.example.com # chown sympa:sympa /var/lib/sympa/list_data/ml.example.com
- robot.confは最低限次のような設定を行うとよいと思われる。
## 基本メールドメイン名 # was domain (You must define this parameter) domain ドメイン名 ## リストシステム管理者の電子メールアドレス ## リストシステム管理者 (サーバ全体を操作できる人) の電子メールアドレス (複数 ## 可)。このアドレスにエラー報告を送ることがあります。リストシステム管理者を仮 ## 想ホスト毎に決めることもできますが、初期設定のリストシステム管理者は全ての ## 仮想ホストの管理権限を持ちます。 # was listmaster (Youmustdefinethisparameter) listmaster 管理者アドレス ## サービスの題名 ## メーリングリストサービスの呼び名。これはウェブインタフェースのヘッダやサー ## ビスメッセージの件名に使われます。 title タイトル名 ## ウェブ インタフェースのURLプリフィクス ## ウェブ インタフェースでURLに使われます。 # was wwsympa_url http://ml.example.com/sympa wwsympa_url https://ドメイン名またはIPアドレス/sympa
- urlはきちんとhttp/httpsを指定する必要がある(画面遷移でログインしていないエラーとなる)
- robot.confは最低限次のような設定を行うとよいと思われる。
- sympaを再起動する (※サービス稼働後の追加時のみ)
# systemctl restart sympa
- transport.sympaを編集する
# vi /etc/sympa/transport.sympa ----------------------------- ml.example.com error:User unknown in recipient table sympa@ml.example.com sympa:sympa@ml.example.com listmaster@ml.example.com sympa:listmaster@ml.example.com bounce@ml.example.com sympabounce:sympa@ml.example.com abuse-feedback-report@ml.example.com sympabounce:sympa@ml.example.com
- virtual.sympaを編集する
# vi /etc/sympa/virtual.sympa ----------------------------- sympa-request@ml.example.com postmaster@localhost sympa-owner@ml.example.com postmaster@localhost
- データベースを更新する
# postmap hash:/etc/sympa/transport.sympa # postmap hash:/etc/sympa/virtual.sympa
- postfixを再起動する
# systemctl restart postfix
HTTPサーバの設定¶
- Sympa WebUIサービスの起動ユーザを編集します(デフォルトはnginx)
# vi /etc/sysconfig/sympa ----------------------------- # With sympa-httpd, uncomment folowing line. #FCGI_OPTS="-M 0600 -U apache" FCGI_OPTS="-M 0600 -U apache"
- systemdの設定でmariadbのコメントを解除し優先順位を設定する
vi /etc/systemd/system/sympa.service.d/dependencies.conf ------------------------------ # Uncomment these lines if you use MariaDB service running on this host. Requires=mariadb.service After=mariadb.service
- サービスを登録・起動します
# systemctl enable wwsympa # systemctl start wwsympa
- ApacheのSympaのアクセス権がローカルのみのため、全許可に変更する
# vi /etc/httpd/conf.d/sympa.conf ----------------------------- <Location /sympa> SetHandler fcgid-script # Don't forget to edit lines below! #Require local Require all granted </Location>
- Apacheを登録・起動する
# systemctl enable httpd # systemctl start httpd
- sympaを登録・起動する
# systemctl enable sympa # systemctl start sympa
- ブラウザでセットアップ画面にアクセスする
https://サーバのIPアドレス/sympa
初回ログイン¶
ログイン画面に移動し、「まだログインしたことがない」のリンクへ移動して
sympa.confに設定したlistmasterのメールアドレスを入力する。その後、
listmasterのメールアドレスにパスワード初期設定フォームのアドレスが発行される。
以上¶