こちらは旧日記です。移転先→ 愚行録 the Next Generation
携帯用メーリングリスト
一月前に携帯電話のメールアドレス用の ML を作った。現在運用中。
迷惑メール対策などの影響で普通の ML とはちょっと違う設定をする必要があったのでメモとして残しておく次第。
ちなみに fml を使っている。
以下、メーリングリスト名を mobile、ml のディレクトリを /var/spool/ml/mobile とする。
まず、Docomo 対策。というか Docomo の迷惑メール対策対策なわけだが。
Docomo では From が @docomo.ne.jp であるにも関わらず Docomo のメールサーバを経由していない場合は SPAM と見なして弾く(550 Unknown user が返ってくる)ようだ。From が ezweb.ne.jp だったり vodafone.ne.jp だったりする場合にどうなるかは不明。
fml のデフォルトでは From はメール送信者のアドレスになる。これでは Docomo ユーザがメールを送ったときに弾かれてしまうので、From はメーリングリストの投稿アドレスにすることにする。/var/spool/ml/mobile/cf の LOCAL_CONFIG 以降に
$SMTP_OPEN_HOOK = q%
$Envelope{'fh:from:'} = $MAIL_LIST;
%;
$START_HOOK = q%
$Envelope{'Body'} = "from: " . $From_address . "\n" . $Envelope{'Body'};
%;
を追加する。前半で From の書き換えを行っている。書き換えることで投稿者のアドレスがきれいさっぱり消えてしまうので本文の最初に投稿者のアドレスを挿入するようにした。その処理が後半部分になる。
なお、ML のユーザがドメイン指定受信機能を使っている場合は ML のアドレスのドメイン(うちだったら emeth.jp)を受信可能ドメインにいれておいてもらう必要がある。こればっかりは一人一人に頼んでいくほかなく、面倒くさい作業である。
au や vodafone の迷惑メール対策がどうなっているかわからないが、これで大丈夫だろう。というか現状で問題は発生していない。
次いで、必須ではないがやっておくといいかもしれない設定。
携帯からなので本文 1 行で送ってくる場合もあるかもしれない。それを許可するには /var/spool/ml/mobile/cf の LOCAL_CONFIG よりも前に
FILTER_ATTR_REJECT_ONE_LINE_BODY 0
を追加するだけ。本文なしでも許可する場合は
FILTER_ATTR_REJECT_NULL_BODY 0
も追加。一回この辺りの設定をし忘れてて本文 1 行なメールを弾いてしまったことがある。弾くようにしてある場合は事前に通知しておいた方がいいだろう。
fml 自体の設定はこんなところ。cf を編集しているので、これらの設定をしたら /var/spool/ml/mobile で
$ make config.ph
を忘れずに。私は cf をいじったが、config.ph を直にいじってもよい。本文 1 行メールを弾くとか弾かないとかの設定の書き方がちょっと変わるが特に難しいことはない。ただし、makefml config などで設定を変えると config.ph が上書きされてしまい、追加した設定が消えてしまう(確か警告が出たような気がするが)ので注意。
次は、投稿者のメールアドレスの問題。
ピリオドが 2 つ以上連続してたりピリオドが @ の直前にあったりするとメールサーバ通過時に @ の前の部分が二重引用符(")で囲まれる。たとえば「hoge..hoge@example.com」なら「"hoge..hoge"@example.com」になる。
何が問題かというと、登録は「hoge..hoge@example.com」でやっている(手動)ので、このユーザから投稿があると「"hoge..hoge"@example.com」になって、登録されてないアドレスと思われて fml に弾かれる、と。
解決法として一番簡単なのは「"hoge..hoge"@example.com」を投稿可能メンバに追加する、という手段で、現状はこの手段をとっている。具体的には /var/spool/ml/mobile/members に「"hoge..hoge"example.com」を追加する。actives の方は配信リストなのでこちらに追加してしまうと当該ユーザに 2 通行ってしまうことになる。
今のところ該当者は一人だが今後増えることも考えてこんなスクリプトを書いてみた。が、まともに動くのかどうか怖くて使ってない。
最後の問題。
自宅でサーバを建てて運用しているのだが、そのような場合、Docomo へのメールが遅延する可能性があるらしい。らしいというのは確認してないから。
ISP のメールサーバを経由すれば遅延はほとんどないらしいので、宛先が携帯の場合は ISP のメールサーバを経由するように Postfix の設定を変更する。
/etc/postfix/main.cf に
transport_maps = hash:/etc/postfix/transport
などと書いて /etc/postfix/transport の中身は
ezweb.ne.jp :[smtp.example.com]
.ezweb.ne.jp :[smtp.example.com]
docomo.ne.jp :[smtp.example.com]
.docomo.ne.jp :[smtp.example.com]
vodafone.ne.jp :[smtp.example.com]
.vodafone.ne.jp :[smtp.example.com]
jp-t.ne.jp :[smtp.example.com]
.jp-t.ne.jp :[smtp.example.com]
pdx.ne.jp :[smtp.example.com]
.pdx.ne.jp :[smtp.example.com]
こんな感じにする。smtp.example.com は ISP のメールサーバにする。jp-t が入ってるのはまだ jp-t の人がいたから。まだ大丈夫なんだねえ。
その後
$ postmap /etc/postfix/transport
して、postfix 再起動して完了。
書き忘れがなければこれで大丈夫。現状これで特に問題なく動いている。
トラックバック(0)
このブログ記事を参照しているブログ一覧: 携帯用メーリングリスト
このブログ記事に対するトラックバックURL: https://emeth.jp/diary_old/mt-tb.cgi/49
コメントする