さくらインターネットのmailfilterで Toの書換えや件名に定型文を付加する方法

公開日: : IT/プログラム

enchanです。
さくらインターネットでは、.mailfilterを使って、スパムの除去や転送メールを行うことが出来ますが、Toアドレスの書き換えや件名の操作に関してはググっても探せれなかったので、もしmailfilterを使って上記のことを行いたかったら参考にしてください。
基本的な構文に関しては『メール < Wiki | さくらのレンタルサーバ非公式FAQ』を参照されるのが良いと思います。

■Toアドレスを書き換える方法

.mailfilterの構文で
 cc “!メールアドレス”
 もしくは
 to “!メールアドレス”
としても、受信者からしたらBccのような形で届きます。
※メールヘッダーのToが受信者のアドレスではなく、転送元のアドレスのままということ。
下のイメージ図のようになると思う。
Bccのような転送
このBccのようなものではなく、Toを書き換えるにはxfilterを使って以下のようにすればできました。

xfilter “sed -e ‘/To: /d’”
xfilter “reformail -A’To: jirou@yahoo.co.jp’”
cc “!jirou@yahoo.co.jp”

■件名(Subject)に定型文を付加する方法

こちらもxfilterを使って書き換えます。

xfilter “sed -e ‘s/^Subject: /Subject: hogehogehogehoge/’”

構文の意味としては、メールヘッダー内の『Subject:』文字がある行を以下の文字列(Subject: hogehogehogehoge)を定型文にする、という意味です。
※linuxのsedコマンドを使っています。
なので、sedコマンドで件名を書き換えたり(元の件名を付加しない)もできると思う。
※実際は『hogehogehogehoge+元の件名』が件名になります。


■応用編

Fromアドレスがtarou@yahoo.co.jpならToアドレスを転送先のアドレス『jirou@yahoo.co.jp』に書き換えて、なおかつ、件名(Subject)に『JIROU』を付加する。
それ以外のFromアドレスの場合は通常の転送を行う。

というような条件では以下のようにmailfilterを書きます。

if ( /^From:.*tarou@yahoo\.co\.jp.*/ )
{
    SUBJECT=`formail -c -xSubject:`
    xfilter “sed -e ‘s/^Subject: /Subject: JIROU/’”
    xfilter “sed -e ‘/To: /d’”
    xfilter “reformail -A’To: jirou@yahoo.co.jp’”
    cc “!jirou@yahoo.co.jp”
    # 元の件名に戻す
    xfilter “sed -e ‘/Subject: /d’”
    xfilter “reformail -A’Subject: $SUBJECT’”
    # その他の処理等……
}
else
{
    cc “!jirou@yahoo.co.jp”
}

こんな感じです!

関連記事

no image

さくらインターネットからgmailにメールが届かない

enchanです。 2014年1月13日くらいから、さくらインターネットからgmailにメールが届か

記事を読む

no image

Popbox.jsがIE9や10で動かない場合

Enchanです。 愛用していたPopbox.jsに問題が発生しました。 jqueryとは独立してい

記事を読む

no image

[PHP] PAERのDBからPDOに移行した

enchanです。 今日は雨。 今までphpとmysqlとの組み合わせではpearのDBを使用し

記事を読む

Comment

  1. UNI より:

    ブログの記事内容に全く関係ありませんが、腰骨を疲労骨折というか剥離骨折してしばらく寝たきりになってましたが、回復してきました(笑)

  2. enchan より:

    UNIさん、回復して何よりです。
    また近いうちにビートル日記を書こうと思います。
    バンパーの隙間をやっとこさ、いい感じに収まりました。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

PAGE TOP ↑