No Image

qmail+vpopmailでメールの添付ファイルを削除して転送する方法・改訂版

前記事:メールの添付ファイルを削除して転送する方法
上記の記事でw-filterというawkスクリプトを使った添付ファイルの削除方法を記載した。
しかし、当方サーバではどうも負荷が高いようで、このスクリプトがさかんに動作しているとメールの遅配が発生するようになってしまった。
最初は「まあ仕方がない」と思っていたが、仕方がないでは済まないくらい遅れるようになってきたため、マジで忙しい合間を縫って、スクリプトの変更を行ってみた。

今回導入したスクリプトはこちら。
添付ファイルを削除してメール転送 for Linux
【導入手順】
1.上記スクリプトをコピーしてテキストエディタ辺りに貼り付ける。
2.一部だけ修正。
[bash]
sub mail_forward()関数の下記をコメントアウト。
# open(OUT,"| $sendmail $forwardto") || die "Cannnot open $sendmail";
# open(STDOUT);
# close(OUT);
コメントアウトした直後に下記を追加。
print $headers;
print "n";
print $honbun;
[/bash]
要約すると、qmail-を使いたいので、/usr/lib/sendmailへメールの内容を引き渡していた部分を削除し、標準出力へ出力するように修正。
3.適当な名前で保存し、サーバに転送。
4.実行権限を付加
[bash]#chmod 755 ファイル名[/bash]
5.次の内容でシェルスクリプトを作成
[bash]#!/bin/sh
#
/usr/local/bin/filt.pl | /var/qmail/bin/qmail-inject 転送先メールアドレス[/bash]
適当な名称で保存( ここでは”filt.sh”で保存したことにする )。
複数箇所に転送したい場合は半角スペースで区切る。
6.保存したシェルスクリプトを”.qmail”で呼び出す
[bash]| /home/vpopmail/domains/〜/メールアカウント名/filt.sh
/home/vpopmail/domains/〜/メールアカウント名/Maildir/[/bash]
これで設定した転送先メールアドレスへ添付ファイルを削除したメールが届くようになる。
今まで数週間運用しているが、この設定に変更してからは以前起きていたようなメールの遅配などが発生していない。
[tmkm-amazon]4798002305[/tmkm-amazon]

Share this post