majordomoはportsから消えたので、mailmanを入れてみました。
portsからインストールしますMTAにsendmailを選択、他はnamazu2など
# cd /usr/ports/japanese/mailman
# make config
設定後にインストール
# make install clean
nkfが必要なのでインストールします
# cd /usr/ports/japanese/nkf
# make install clean
メーリングリスト自身はwebサーバーを介して設定するので、まずはApacheからアクセスできるようにします。
/usr/local/etc/apache24/httpd.conf へ追記
ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/" Alias /pipermail/ "/usr/local/mailman/archives/public/" <Directory "/usr/local/mailman/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <Directory "/usr/local/mailman/archives/public/"> Options FollowSymLinks Indexes AllowOverride None Require all granted </Directory> #文字化けする場合は AddDefaultCharset EUC-JP #を追記
次にmailmanの設定
/usr/local/mailman/Mailman/mm_cfg.py
DEFAULT_SERVER_LANGUAGE = 'ja'
SENDMAIL_CMD = '/usr/local/etc/mail/jsendmail'
DEFAULT_REPLY_GOES_TO_LIST = 1
DEFAULT_URL_PATTERN = 'https://hogehoge.mydns.jp/mailman/'
PUBLIC_ARCHIVE_URL = 'https://hogehoge.mydns.jp/pipermail/%(listname)s'
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%04d]"
DEFAULT_LIST_ADVERTISED = No
DEFAULT_ARCHIVE_PRIVATE = 1
DEFAULT_FIRST_STRIP_REPLY_TO = Yes
ARCHIVE_TO_MBOX = 2
OLD_STYLE_PREFIXING = No
DEFAULT_SEND_WELCOME_MSG = No
DEFAULT_SUBSCRIBE_POLICY = 2
DEFAULT_PRIVATE_ROSTER = 2
ALLOW_RFC2369_OVERRIDES = No
DEFAULT_MAX_MESSAGE_SIZE = 1000
DEFAULT_DIGESTABLE = No
DEFAULT_DEFAULT_MEMBER_MODERATION = Yes
add_virtualhost('ml.example.ne.jp', 'ml.example.ne.jp')
マスターパスワード設定
# cd /usr/ports/japanese/nkf
# make install clean
majordomo.cfの$sendmail_commandを書き換えます
/usr/local/majordomo/majordomo.cf
$sendmail_command = "/usr/sbin/sendmail";を
$sendmail_command = "/usr/local/majordomo/jsendmail"; とします
これでHELPや送られて来るメールが日本語化されます。
あとはAmacheでScriptAliasに設定したURLへアクセスしてメーリングリストを設定します。
上記の場合は
http://hogehoge.mydns.jp/mailman/
へアクセスしてください。
.htaccessを置いて誰でも入れないようにしておくのが良いかもしれません。
上記設定ではメーリングリストの投稿に番号を付けていますが、番号を変更する事があったのでメモ代わりに方法を記載します。
# cd /usr/local/mailman/bin
# ./withlist fireworks
Loading list ML名 (unlocked)
The variable `m’ is the ML名-ml MailList instance
>>> m.Lock()
>>> m.post_id
現在の番号
>>> m.post_id=1 ←次の番号を入力
>>> m.Save()
>>> ^D
Unlocking (but not saving) list: ML名-ml
Finalizing