里野@金沢在住です。
牛島@奈良在住さん・・・はまだいらっしゃるでしょうか(^^;)?
fmlのフィルタリングの件、実は以前から本家に資料が書かれていました。
http://www.fml.org/fml/Japanese/utility_programs/6.html
の
6.14 Multipart Canceler Filter (bin/multipart.pl)
です。
−−−引用ここから
最近、ML に Multipart/Mixed とか Multipart/Alternative とかの
形式で、メールを送ってくる人がいるので(特にコマンドの処理がで
きないので)、Multipart Canceler なるフィルタを作ってみました。
Multipart/Mixed の場合は、# End of Document No.??? でつなげる。
Multipart/Alternative の場合は、最初の文書以外は捨てる。...と
いうことをしています。
使い方は、fml を起動するのに "|/fmlpath/fml.pl ..." と記述し
ているところを "|/scriptpath/multipart.pl|/fmlpath/fml.pl ..."
などと記述すれば機能します。
−−−引用ここまで
これでmultipart/alternative形式などの件
(例えばyahoomailからの発信やiphone等からの発信)に関しても
plaintextへコンバートされてから配信されるようになります。
具体的には先に使わせていただいたgmail-filter.plの前に、
さらにフィルタをかけるイメージです。
「multipart.pl」の本体はfmlをサーバ上の
どこにインストールされているかに依存しますが、
当方の場合は/home/fml/bin/multipart.plに存在していましたので
/var/ml/etc/aliasesの書き換え内容サンプルとしては・・・
test-ml:
"|/home/fml/bin/multipart.pl|/usr/bin/gmail-filter.pl|/home/fml/fml.pl
/var/spool/ml/test-ml"
test-ml-ctl:
"|/home/fml/bin/multipart.pl|/usr/bin/gmail-filter.pl|/home/fml/fml.pl
/var/spool/ml/test-ml --ctladdr"
test-ml-request: test-ml-admin
test-ml-admin: fml
owner-test-ml: fml
owner-test-ml-ctl: fml
・・・といった2段構えでの対処になります。
aliasesを書き換えた後は
/var/ml/etc/
にて
newaliases
の実行をお忘れ無きよう_(^_^)_
以上、相当昔のネタへの追加レスで恐縮ですが、報告を兼ねて投稿します。
By Hajime-Satono / halcom@xxxxxxxxxxxx
On 2014/09/15 10:42, usi@xxxxxxxxxxxxxxx wrote:
里野@金沢在住 様
牛島@奈良在住です。
コメント、ありがとうございました。
aliasesのデータベースの件、ありがとうございました。
サンプルが本当に助かりました。結論から言うと、無事に動き出しましたが、
浅い管理者知識が致命傷でした。
・設定ファイル
/etc/aliaseが正解だと思っていたのですが、/varの方にあったのですね。知りません
でした。
早速対応してみたところ、それでもうまくいきませんでした。
どうしてもメールがサーバで止まってしまいます。
そこで、サンプルと書式を確認したところ、私の設定は、
test-ml: "|/usr/bin/gmail-filter.pl |/home/fml/fml.pl /var/spool/ml/test-ml "
test-ml-ctl: "|/home/fml/fml.pl /var/spool/ml/test-ml --ctladdr"
test-ml-request: usitest-admin
test-ml-admin: fml
owner-test-ml: fml
owner-test-ml-ctl: fml
と、2行目にgmail-filter.plが入っていませんでした。
ホームページの書き方だとメールをfmlに送る前に文字変換すればよいので
1行目だけで良いように思うのですが、2行目にも必要だったのですね。
前からなぜ良く似たものを2行書いているのか不思議でしたが、実際にメールをfmlに
送って
いるのは「ctl」が書かれた2行目だったのですね。勉強になりました。
(逆に1行目の存在意義がわからなくなりましたが・・・)
それでも、メールはまだサーバにて消滅します。
Sep 15 09:21:55 fml postfix/local[20260]: C9105DC00E0: to=<test-ml@xxxxxxxxx>,
relay=local, delay=0.12, delays=0.05/0.01/0/0.06, dsn=2.0.0, status=sent (del
ivered to command: /usr/bin/gmail-filter.pl|/home/fml/fml.pl /var/spool/ml/tes
t-ml )
Sep 15 09:21:55 fml postfix/qmgr[2365]: C9105DC00E0: removed
コピーが間違っていたのかと、再度コピーをしたり文字コードを JIS や utf-8 、euc-
jp に
して保存してもだめでした。
そこで、ファイル名が間違っていないかと確認したときに、
[root@fml bin]# ls -l gmail-filter.pl
-rw-r--r-- 1 root root 6159 9月 15 09:44 gmail-filter.pl
「実行」のフラグが上がっていないことに気が付きました。
そこで、
[root@fml bin]# chmod +x gmail-filter.pl
[root@fml bin]# ls -l gmail-filter.pl
-rwxr-xr-x 1 root root 6159 9月 15 09:44 gmail-filter.pl*
としたところ、ようやく動き出しました。
phpのファイルはこのフラグを立てるのですが、shのファイルは立てなくても
動くので、perlだから大丈夫かなぁと思い込んでいました。
これからは気を付けます。ありがとうございました。
追伸
multipart/alternative形式の件は知りませんでした。
Google先生に聞いたところ、ずいぶん変な形式ですね。
うまく、txt部分だけを抽出できれば問題は少なくなると思いますが、
そうすると、html形式のメールとの区別が付くかどうかが肝ですね。
すみません、答えにならなくて。
(2014/09/14 20:13), Hajime Satono wrote:>
牛島さん。
里野@金沢在住と申します。
On 2014/09/14 18:13, usi@xxxxxxxxxxxxxxx wrote:
メーリングリストのユーザがほとんどが携帯電話となっています。
最近、iphoneユーザの投稿が文字化けをするという事がありました。
調べてみるとどうやら utf-8 でメールを送信しているようです。
キャリアーはdocomoでした。jisに変えれないかと設定を見てみた
のですが、文字コードを変更する方法はわかりませんでした。
そこで、サーバでjisに置き換えて見ようと色々と調べてみると
下記のようなサイトがあり、perlで変換するプログラムがありました。
http://yamagata.int21h.jp/tool/gmail-filter/
全く同様の悩みで全く同様の対処を行っています(^^;)
早速入れてみたのですが、メールは返って来ませんでした。
理由の1つは 1行目の perl の位置が違っていたので
そこは変更しましたが、結果は変わりませんでした。
#!/usr/local/bin/perl -> #!/usr/bin/perl
まずfmlにて「test-ml」などのテスト用mlを作成して配信先を自分などにして下
さい。そしてそのtest-ml@xxxxxxxxxxxxなどにテストメールを投げてみて下さい。
フィルタが正常に動作していれば配信されたメールのメールヘッダに・・・
「X-GMail-Filter: gmail-filter.pl(ver0.19.02) by yamagata@openmya」
・・・が付加されているはずです。
受信メーラでメールヘッダ表示を「全て」にして確認してみて下さい。
付加されていない場合、フィルタ自体が稼働していない懸念があります。
fmlをサーバのどこでどのように動かしているかによりますが、
例えば当方の場合は/var/spool/ml/・・・配下に各mlがあり、
fmlの設定ファイルは/var/spool/ml/etc/・・・配下にあります。
/var/spool/ml/etc/aliases
の内容に
test-ml: "|/usr/bin/gmail-filter.pl |/home/fml/fml.pl /var/spool/ml/test-ml"
test-ml-ctl: "|/usr/bin/gmail-filter.pl |/home/fml/fml.pl
/var/spool/ml/test-ml --ctladdr"
test-ml-request: test-ml-admin
test-ml-admin: fml
owner-test-ml: fml
owner-test-ml-ctl: fml
といった「|/usr/bin/gmail-filter.pl」などの記述が追記されており、
同ディレクトリ配下で管理者権限により・・・
newaliases
・・・を実行すれば動くかと思います。
fmlで「実際に利用されている」aliasデータベースファイルの所在を誤認してい
るといつまで経っても動作しません(当方この罠に3日ぐらいハマりました)。
以上、ご参考になれば幸いです。
ちなみに本フィルタを使った場合でも・・・
「Content-Type: multipart/alternative;」
・・・でmlに対して送信されたメールは正しく変換されない模様です。
この解決法をご存じの方がいらっしゃれば是非ご教示下さい_(_ _)_
By Hajime-Satono / halcom@xxxxxxxxxxxx
_______________________________________________
vine-users mailing list
vine-users@xxxxxxxxxxxxxxxxxxxx
http://listserv.linux.or.jp/mailman/listinfo/vine-users
_______________________________________________
vine-users mailing list
vine-users@xxxxxxxxxxxxxxxxxxxx
http://listserv.linux.or.jp/mailman/listinfo/vine-users
_______________________________________________
vine-users mailing list
vine-users@xxxxxxxxxxxxxxxxxxxx
http://listserv.linux.or.jp/mailman/listinfo/vine-users