「Mailman」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) 全体的に古いので英語版に差し替え |
Kusanaginoturugi (トーク | 投稿記録) テンプレート:Expansion を削除 |
||
| (同じ利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category: |
[[Category:メール]] |
||
[[Category: |
[[Category:メールサーバー]] |
||
[[en:mailman]] |
[[en:mailman]] |
||
[https://gitlab.com/mailman/mailman Mailman] |
[https://gitlab.com/mailman/mailman Mailman] はメーリングリスト管理システムです。[[メールサーバー]]と組み合わせて使用します。 |
||
== インストール == |
== インストール == |
||
[[インストール]] |
{{Pkg|mailman3}} パッケージを[[インストール]]します。 |
||
{{Note|{{Pkg|mailman3}} |
{{Note|{{Pkg|mailman3}} は近い将来 {{Pkg|mailman}} に置き換わる予定です。両方のアプリケーションが {{ic|/var/lib/mailman}} をステートディレクトリ、{{ic|mailman}} ユーザーとして使うので、現在衝突していて、一緒にインストールすることはできません。}} |
||
Mailman |
Mailman は [[Postorius]] (設定用) と [[Hyperkitty]] (アーカイブ用)と一緒に使うことができます。 |
||
{{Note|''Mailman'' |
{{Note|''Mailman'' は専用の {{ic|mailman}} ユーザーとして実行されます。したがって、{{ic|mailman}} 実行ファイルは、{{ic|mailman}} ユーザーとして実行する必要があります。}} |
||
== 設定 == |
== 設定 == |
||
Mailman の設定はすべて {{ic|/etc/mailman.cfg}} で行われます。全ての可能な設定オプションとデフォルトの設定を説明するスキーマは {{ic|/usr/lib/python3.8/site-packages/mailman/config/schema.cfg}} に格納されています。 |
|||
また、コマンドラインからも設定にアクセスすることができます。{{ic|mailman}} ユーザーとして (例: [[sudo]] や [[su]] を使って) 以下のコマンドを実行します。 |
|||
The configuration is also accessible via the command line. Run the following command as the {{ic|mailman}} user (e.g. using [[sudo]] or [[su]]): |
|||
[mailman]$ mailman conf |
[mailman]$ mailman conf |
||
| 180行目: | 180行目: | ||
=== メールサーバとの統合 === |
=== メールサーバとの統合 === |
||
{{Expansion|Example for setup with [[mail server]] (based on [https://mailman.readthedocs.io/en/latest/src/mailman/docs/mta.html upstream documentation]).}} |
|||
=== Integrate with Hyperkitty === |
=== Integrate with Hyperkitty === |
||
2023年4月5日 (水) 16:37時点における版
Mailman はメーリングリスト管理システムです。メールサーバーと組み合わせて使用します。
インストール
/var/lib/mailman をステートディレクトリ、mailman ユーザーとして使うので、現在衝突していて、一緒にインストールすることはできません。Mailman は Postorius (設定用) と Hyperkitty (アーカイブ用)と一緒に使うことができます。
mailman ユーザーとして実行されます。したがって、mailman 実行ファイルは、mailman ユーザーとして実行する必要があります。設定
Mailman の設定はすべて /etc/mailman.cfg で行われます。全ての可能な設定オプションとデフォルトの設定を説明するスキーマは /usr/lib/python3.8/site-packages/mailman/config/schema.cfg に格納されています。
また、コマンドラインからも設定にアクセスすることができます。mailman ユーザーとして (例: sudo や su を使って) 以下のコマンドを実行します。
[mailman]$ mailman conf
データベース
Mailman by default uses an SQLite database in /var/lib/mailman/data/, but can be configured to use MariaDB or PostgreSQL.
SQLite
The default location for the SQLite database is already reflected in the schema.cfg and therefore does not have to be set in Mailman's configuration.
/etc/mailman.cfg
[database] url: sqlite:////var/lib/mailman/data/mailman.db
MariaDB
インストール the python-pymysql package and configure a database on MariaDB.
/etc/mailman.cfg
[database] class: mailman.database.mysql.MySQLDatabase url: mysql+pymysql://myuser:mypassword@mymysqlhost/mailman?charset=utf8&use_unicode=1
PostgreSQL
インストール the python-psycopg2 package and create a database using PostgreSQL.
/etc/mailman.cfg
[database] class: mailman.database.postgresql.PostgreSQLDatabase url: postgres://myuser:mypassword@mypghost/mailman
REST API
Mailman exposes its REST API based on the settings in the [webservice] section of the configuration. Make sure to replace the default values for admin_user and admin_pass (do not use the example values below).
/etc/mailman.cfg
[webservice] admin_user: my_new_admin_user_name admin_pass: my_new_admin_user_password
ARC
By default DMARC and DKIM are disabled. The configuration takes place in the [ARC] section of the configuration file. Make sure to set necessary values and read the documentation about the defaults.
/etc/mailman.cfg
[ARC] enabled: yes authserv_id: mailserver.tld trusted_authserv_ids: subdomain.mailserver.tld, other.mailserver.tld privkey: /path/to/privatekey.pem selector: test domain: mailserver.tld
MTA
To connect a mail-transfer-agent (MTA), it is necessary to configure the [mta] section in the configuration file. Upstream documentation covers examples for postfix, exim and sendmail, but other MTAs are technically possible.
Postfix
To connect to a local postfix instance the following configuration section can be used:
/etc/mailman.cfg
[mta] incoming: mailman.mta.postfix.LMTP outgoing: mailman.mta.deliver.deliver lmtp_host: mail.example.com lmtp_port: 8024 smtp_host: mail.example.com smtp_port: 25
The postfix configuration has to be extended to ensure compatibility (see upstream notes).
/etc/postfix/main.cf
[..] recipient_delimiter = + unknown_local_recipient_reject_code = 550 owner_request_special = no [..]
Additionally, postfix needs to be made aware of mailman's transport maps. Depending on the postfix configuration these may look similar to the following.
transport_maps, local_recipient_maps, relay_domains, virtual_mailbox_domains and virtual_alias_maps are merged with the additional values./etc/postfix/main.cf
[..] transport_maps = hash:/var/lib/mailman/data/postfix_lmtp local_recipient_maps = hash:/var/lib/mailman/data/postfix_lmtp relay_domains = hash:/var/lib/mailman/data/postfix_domains [..]
If postmap is not directly accessible by mailman for creating the default hash-based alias maps, it is possible to generate regular expression based alias maps instead.
To overwrite the default Python-class based configuration, mailman allows the use of a configuration file. Create the following file:
/etc/postfix-mailman.cfg
[postfix] postmap_command: /usr/bin/postmap transport_file_type: regex
Add the file to the [mta] section in mailman's configuration file.
/etc/mailman.cfg
[mta] [..] configuration: /etc/postfix-mailman.cfg
Afterwards the regexp based exports can then be used in the postfix configuration.
/etc/postfix/main.cf
[..] transport_maps = regexp:/var/lib/mailman/data/postfix_lmtp local_recipient_maps = regexp:/var/lib/mailman/data/postfix_lmtp relay_domains = regexp:/var/lib/mailman/data/postfix_domains [..]
hash to regexp): [mailman]$ mailman aliasesTo connect to a local postfix instance with a virtual mail setup, first set an alias domain. Afterwards alter the respective configuration.
/etc/postfix/main.cf
[..] local_recipient_maps = regexp:/var/lib/mailman/data/postfix_lmtp transport_maps = regexp:/var/lib/mailman/data/postfix_lmtp virtual_mailbox_domains = regexp:/var/lib/mailman/data/postfix_domains virtual_alias_maps = regexp:/var/lib/mailman/data/postfix_vmap [..]
起動
Enable and start mailman3.service.
Several systemd services with timers exist, taking care of various aspects of the list management:
mailman3-digests.timer: for sending out daily digests to subscribersmailman3-gatenews.timer: for hourly polling of NNTP servers for newsmailman3-notify.timer: for sending out daily notifications to admins about pending requests
セットアップ
メールサーバとの統合
Integrate with Hyperkitty
Mailman does not automatically archive mails on its own. The Hyperkitty web application is used for this purpose. Based on a plugin, mailman is able to send mails to a Hyperkitty instance for archival.
インストール the mailman3-hyperkitty package and configure /etc/mailman-hyperkitty.cfg.
/etc/mailman-hyperkitty.cfg
[general] base_url: https://example.tld/hyperkitty/ api_key: super_secret_password
Afterwards, make mailman aware of the plugin:
/etc/mailman.cfg
[archiver.hyperkitty] class: mailman_hyperkitty.Archiver enable: yes configuration: /etc/mailman-hyperkitty.cfg
ヒントとテクニック
mailman 3.0 未満からのマイグレート
Mailman offers the possibility of importing mailman < 3.0 based list databases (config.pck). Run the following command as the mailman user (e.g. using sudo or su):
[mailman]$ mailman import21 LISTSPEC PICKLE_FILE
Here, LISTSPEC represents a fully-qualified name of a list to import (e.g. list@example.com) and PICKLE_FILE the path to the list's config.pck file.
REST API
Mailman exposes a REST API, which can be interfaced using custom tooling, based on python-mailmanclient.
参照
- Mailman Documentation - The upstream documentation
- Mailmanclient Documentation - The upstream documentation
- Connecting to Mailman - The upstream documentation on mailman3-hyperkitty
- Mailman Suite Documentation - The (high level) upstream documentation for the entire Mailman Suite (Mailman, Hyperkitty and Postorius)