サーバーはさくらインターネットを利用しています。
このサーバーの配信プログラムはmaildrop を使用しています。
Q.
本文に特定の文字が入ったメールだけ転送する設定のやり方を教えてください。
.mailfilterに数行、記述をおこなうだけで出来る安易な方法だと思うのですが、記述の仕方がわかりません。
何度かここで質問しましたが解決に至っていません。
参考URLだけの回答は要りません。
.mailfilterに記述するソースをそのまま書いてください。
よろしくお願い致します。
正規表現という規則で記述しないとだめなのです。
たとえば
if ( /^content-type:[ \t]*text\/html.*/ )
{
to "./Maildir.spam/"
}
正規表現の解説は本1冊くらいかかります。
if ( /.*Hatena.*/:b )
{
cc "!postmaster@example\.sakura\.ne\.jp"
}
…でいかがでしょうか?
本文に「Hatena」が含まれていた場合、postmaster@example.sakura.ne.jpに転送します。
参考ページ
http://kazulog.net/index.php?e=385
ただし、特定の文字列が日本語の場合、これでは動作しないかもしれません。
参考ページの管理人さんも失敗しているようです。
さくらのサーバーのユーザーではないため、確認できないので分かりませんが、日本語の場合は16進コードで記述するとマッチするかもしれません。
「はてな」→「\x82\xcd\x82\xc4\x82\xc8」
(バックスラッシュではなく半角の¥です。)
…となるので、下のように記述します。
if ( /.*\x82\xcd\x82\xc4\x82\xc8.*/:b )
{
cc "!postmaster@example\.sakura\.ne\.jp"
}
16進コードは、バイナリエディタで確認できます。
サクラエディタもしくはVxEditorなどのテキストエディタでも確認できます。
(※カーソル位置の16進コードがステータスバーに表示されます。)
回答ありがとうございます。
とても参考になりました。
しかし特定の文字を含まない全てのメールが転送されてしまいます。
他に何か記述が必要なのでしょうか…
また何かわかりましたら回答頂けると幸いです。
.mailfilterには
cc "!xxx@gmail.com"
とだけ書いておき,まずメールのコピーをすべてgmailに転送します。
gmail側では
設定→フィルタ→キーワード
で,その特定の文字列を入力し,本来の転送先のメールアドレスをセットします。
こうすれば,特定の文字列を含むメールはgmail経由で転送されてきます。
gmailアカウントを,転送時の振り分け用途のみで利用するという事です。
例えば,本文に自分の名前を含むメールのみ携帯に転送させるなどの用途でよくこのように使われています。
回答ありがとうございます。
そういう方法もありますね。
しかし.mailfilterの記述だけで転送する方法を探しています。
通常ポイントとさせて頂きます。
回答ありがとうございます。
( /^content-type:[ \t]*text\/html.*/ )のどこに特定の文字を挿入すればいいのでしょうか?
転送先のアドレスがpostmaster@example.sakura.ne.jpの場合
to "!postmaster@example\.sakura\.ne\.jp"と表記すればいいのでしょうか?
よろしくお願い致します。