ノウハウ
[エンジニア向け]

Mailmanのコマンドライン操作

ノウハウ
テクニカルサポート

今回は、Plesk8、Plesk11にも搭載されているMailmanで使えるコマンドのことを書きます。

メーリングリストの作成、削除などは基本はPlesk管理画面の中で行わないと不整合が出てしまうので、すべてのコマンド利用をおすすめしているわけではないのですが、状況を確認したり、設定をインポート・エクスポートする際にコマンド利用が役に立つことがあります。

Mailman 付帯コマンドのパス

rootに昇格しパスを通します

#  export PATH=${PATH}:/usr/lib/mailman/bin

サーバの中にあるメーリングリスト名を確認する

#  list_lists

Mailman というリスト名とその他の作成済みのメーリングリスト名が出ます。
実際は /usr/lib/mailman/bin/list_lists と同じ操作となります。
例)出力はこんな感じです。[@ドメイン名]以降は確認できません。
# list_lists
3 matching mailing lists found:
123456 – [no description available]
Abcdef – [no description available]
Mailman – [no description available]

Mailmanの付帯コマンドで「メーリングリスト名」といった場合、常にこの@マーク以降を含まない省略名を指します。

メーリングリストメンバーのメールアドレスを確認する

Mailmanメーリングリストメンバーは特定のテキストファイルを見ればわかるものではないので
管理画面か、コマンドラインで確認しましょう。

#  list_members メーリングリスト名

例)
# list_members Abcdef
user1@example.org
user2@example.jp
user3@example.com

という感じでメンバーリストが出ますが、「Abcdef」は必ずしも頭を大文字にする必要はなく「abcdef」も「ABCDEF」も「abCDef」も同じとして扱われます。

たくさんのリストメンバーがいて「何人いるんだっけ」と単純に数えたいときはUNIXのコマンドにパイプすれば行数が出ます。
例)
# list_members Abcdef | wc -l
3 ★メンバーの行数

ファイルに落としたければリダイレクトして保存すればOKです。
例)
# list_members Abcdef > abcdef_member.txt

ファイルからメーリングリストメンバーを追加する

コマンドライン作業でメーリングリストメンバーを追加することもできます。

あらかじめPleskで123456(@ドメイン)というMailmanメーリングリストを作成しておき、メンバー追加用のメールアドレス一覧ファイルを用意しておきます。
メールアドレスを1つずつ改行して記載したようなファイルです。
user1@example.org
user2@example.jp
user3@example.com
というような。
本例では「/root 」以下に 「member.txt」というファイル名で作成するとします。
そして以下のようなコマンドを実行します

# add_members -r ファイル名 メーリングリスト名


例)
# add_members -r /root/member.txt 123456
Subscribed: user1@example.org
Subscribed: user2@example.jp
Subscribed: user3@example.com

すでに同じメンバーが追加済みだと こんな風に出ます。
※管理画面を日本語にしているとメールアドレスの前のメッセージは英語では出ません。

# add_members -r /root/member.txt 123456
Already a member: user1@example.org
Already a member: user2@example.jp
Already a member: user3@example.com

ちなみにこの「r」ですが「通常の配信ユーザファイルを追加する」という意味合いの「Regular」のrだそうです。
後述の削除コマンドオプションと異なるのでご注意を。

add_membersコマンドにはその他のオプションもあります。
ウェルカムメッセージに関する項目を指定したい場合は さらに
-w y (リストの設定がどうあれ追加メンバーにウェルカムメッセージを送る。※ -w n にすると送らない)」
-a y (管理者に追加通知を送る ※ -a n にすると送らない)」
などを追加することができます。 詳細は「add_members -h 」でご確認ください。


メーリングリストメンバーを削除する

「追加」に対しての「削除」ですが こちらはパターンがいろいろあります。大まかなパターンは以下の4つ。
便利ですが使い方を間違えないようにご注意を。

~メーリングリストの登録メンバーを一括削除~

# remove_members -a メーリングリスト名


メーリングリストの中身をきれいさっぱり一掃
。a はAllの意味ですね。
例)
# remove_members -a Abcde
削除の時は「削除しました」というようなメッセージはでません

~指定ファイルに記載されているメンバーをメーリングリストから削除~

# remove_members -f ファイル名 メーリングリスト名


上述の
追加コマンドの削除版といえるオプションですね。
削除した時は「削除しました」というようなメッセージはでませんが、指定したユーザが存在していない場合はメッセージが出ます。
例) 事前に /root/rmmember.txt を用意して以下を実行
# remove_members –f /root/rmmember.txt Abcde

~メーリングリストから個別アドレスを削除~


# remove_members  メーリングリスト名 メールアドレス1 メールアドレス2 ・・・


手動でひとつひとつアドレスを打つ削除方法です。
こちらも
「削除しました」というようなメッセージはでませんが、指定したユーザが存在していない場合はメッセージが出ます。
例)
# remove_members Abcde user1@example.org

ちなみに「登録のないユーザ」を消そうした場合は以下のようメッセージが出力されます
例)
# remove_members Abcde user4@example.info
No such member:
user4@example.info

~すべてのMailmanメーリングリストから特定のアドレスを削除~

# remove_members –fromall メールアドレス1
メールアドレス2 ・・・


退職者アカウントなどを整理するときに使えます。

この削除方法では「このメーリングリストからこのアドレスを消した」という報告の行が出ます。
例)
# remove_members –fromall user1@example.org
User `user1@example.org’ removed from list: 12345.
User `user1@example.org’ removed from list: Abcde.

メンバーに退会メッセージを送らないようにする設定は 「 -n 」をつけます。
詳細は「 remove_members -h 」でご確認ください。

設定ファイルの書き出し(エクスポート)
Mailmanの設定は管理画面から基本確認をしますが、特定のテキストファイルを見れば設定状況がわかる、というものではありません。ただ、テキストファイルに書き出す、ということはコマンド操作でできます。

# config_list -o 設定書き出しファイル メーリングリスト名

例)
# config_list -o /root/abcde_conf.txt Abcde

上記で「/root/abcde_conf.txt 」というファイルが出来上がります。
Mailman管理画面でおなじみのオプション、およびコメント行が記載されています。

書き出した設定ファイルはたくさんのコメント行がありますが、主な指定項目は「=」で
指定されていますので、概要を知りたければ「=」で検索をかけます。

例)
# grep -v ^# /root/abcde_conf.txt | grep =
real_name = ‘Abcde’
owner = [‘○○○@○○○○○’]
moderator = []
description = ”
info = ”
subject_prefix = ‘[Abcde] ‘
anonymous_list = False
first_strip_reply_to = False
reply_goes_to_list = 0

以下略。

たとえばこのメーリングリストの「@ドメイン名」の部分を確認したいときは「host_name = 」で
どのドメイン名が指定されているかを確認すればよいです。

例)
# grep -v ^# /root/abcde_conf.txt | grep = | grep host_name
host_name = ‘example.org’ ★ abced@example.org のドメイン部分

”項目 =  値”という記載になっていますが、文字列指定の部分は シングルクオーテーション(‘)、メールアドレスなどはブラケット([ ])とシングルクオーテーションで囲まれます。

■設定ファイルの取り込み(インポート)

# config_list -i 設定書き出しファイル メーリングリスト名

例)
# config_list -i /root/abcde_conf.txt Abcde
※文字コードなどの関係で、エラーが発生する場合があります。

過去記事で以下のようなものもあります。ぜひご参照ください。
Mailmanのデフォルト設定調整

この記事を書いた人

テクニカルサポート

テクニカルサポートを得意とするCloudGarage、エクスクラウドのサポートスタッフ。

この記事のタグ

オススメの記事

この記事を読んだ人にオススメのサービス

エクスクラウドのクラウドVPS

メモリ2GBで950円!最大72GBまで拡張!SSD搭載でメモリ量も多いため、WordPressなどのCMS利用にオススメです。負荷分散や冗長化についてのインフラ設計コンサルティング&サーバー構築代行を技術スタッフが承ります。オプションでクラウド型WAFが1,500円/月で提供、セキュリティ対策も対応に導入可能です。

ページトップへ