(ヽ´ω`) < 助けてほしいマン

わからないことを助けてほしいマンが書くブログ

(ヽ´ω`) < Moinmoinのメール設定

(ヽ´ω`) < メールって何かに使うの?

Moinmoinではパスワードが忘れた場合にリセットをすることが可能だが、よくあるパターンで、登録した登録時に入力したメールアドレス宛にリセット用のURLとトークンを送る形になっている。

ということは、当然メール送信のための設定が必要となる。

(ヽ´ω`) < どうやってやるの?

wikiconfig.pyMailセクションで設定を行う。

HowTo/AdvancedEmailSetup - MoinMoin

公式ドキュメントではサーバ内部のsendmailコマンドを指定して送る方法が説明されているが、wikiconfig.py内部にはSMTPサーバを設定するようにコメントが書かれている。

今回はSMTPサーバを指定する方法を解説する。(SMTPサーバにlocalhostを指定すれば、実質的にsendmailコマンドを指定するのと同じようなものだが、より細かいオプションを指定できる)

(ヽ´ω`) < 設定するパラメータは2+1

wikiconfig.pyで指定するパラメータは以下の2つ(と必要に応じて+1つ)

  1. mail_smarthost - SMTPサーバ
  2. mail_from - Moinmoinから送信するメールのFrom欄の値
  3. mail_login - SMTPサーバがSMTP AUTHが必要な場合はユーザ名とパスワードを半角スペース区切り出来術

ポートとTLSの設定は自動的に検出してくれるっぽい。

追記

と思ったら、ポートは25番でハードコーディングしてあるような感じ。

## /usr/lib/python2.6/site-packages/MoinMoin/mail/sendmail.py Moinmoin-1.9.7
    try:
        logging.debug("trying to send mail (smtp) via smtp server '%s'" % cfg.mail_smarthost)
        host, port = (cfg.mail_smarthost + ':25').split(':')[:2]
        server = smtplib.SMTP(host, int(port))

/usr/lib/python2.6/site-packages/MoinMoin/mail/sendmail.pyを見る限りだと、25番ポート決め打ち。465番接続でのSMTPSはサポートしておらず、25番接続からのSTARTTLSコマンドでの暗号化のみサポートっぽい。

465番は既に無効になっているからわかるとして、サブミッションが使えないってのはちょっと…

やっぱりローカルでSMTPサーバ立てて、そこでリレー設定しろって感じなんですかね(ヽ'ω`)

追記ここまで

例えばSo-netSMTPサーバを使用する場合は以下のとおりとなる

mail_smarthost = "mail.so-net.ne.jp"
mail_from = "Tsugihagi Moinmoin <tsugihagi@hogehoge.com>”
mail_login = "tsugihagi-dummy@aa.so-net.ne.jp myDummyPassword"

So-netではSMTP AUTHとTLSが必須だが、上記設定のみで問題なく送信が出来た。

Moinmoinを設置したサーバでSMTPサーバが稼働しているなら、以下のとおり

mail_smarthost = "localhost"
mail_from = "Tsugihagi Moinmoin <tsugihagi@hogehoge.com>”

(ヽ´ω`) < 忘れずに

wikiconfig.pyを変更した後は、Apacheの再起動を忘れずに。