2014年06月05日

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

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"
}



こんな感じです!



posted by enchan at 17:56 | Comment(2) | TrackBack(0) | IT/プログラム

2014年01月17日

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

enchanです。

2014年1月13日くらいから、さくらインターネットからgmailにメールが届かないようになってしまいました。

SFPレコードの設定や、その他いろいろ試行錯誤しましたが、さっぱり届かず、
原因がつかめないところ下記の案内を見つけましたので載せておきます。


「さくらのレンタルサーバ」における「Gmail」宛てのメール遅延に関するお知らせ
http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=844


posted by enchan at 10:37 | Comment(0) | TrackBack(0) | IT/プログラム

2013年06月11日

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

Enchanです。

愛用していたPopbox.jsに問題が発生しました。
jqueryとは独立していて、画像をクリックすると拡大できるPopbox.js(2.7)ですが、
IE9や10ではクリックすると、一回目では起動しない現象がありました。
(ローディング画像がくるくる回り続けるだけで、拡大されません。しかし、もう一回クリックすると画像は拡大されます。)


Popbox.jsとは、
imgタグに『pbsrc』という属性を付け、『pbsrc』に拡大したときに表示したい画像のURLを書くんですね。Popbox.jsの初期処理では『pbsrc』が記述してあるimgタグ達を取得し、配列として持っておく。

マウスで画像をクリックしたときに、この配列をアクセスし配列内のオブジェクトのステータス『readyState』を見て、画像を拡大するか否かと決めているようです。

ここで、Firefoxやchoromeのブラウザでは配列内のオブジェクトのステータス(readyState)が『complete』(全データ読込完了状態)になっているのですが、ie9,10だと『uninitialized』(初期化未完了状態)となり、画像が拡大されません。

なぜuninitializedになるか? これは、誰かが何れ解明してくれるとして、
Popbox.jsをieブラウザの場合は上記の処理をチェックしないように修正して動くようにしたよ。

修正したファイルを置いておきますのでダウンロードはご自由に(v2.7を変更しています)


今のところ、このチェックを飛ばしたからといって変な不具合は出ていません。
まぁ、画像を拡大・縮小する単純なscriptなので、特に大きな問題にはならんでしょう。
※このプログラムは問題を回避しているだけであって、しっかりした修正ではありませんのであしからず。

posted by enchan at 15:26 | Comment(0) | TrackBack(0) | IT/プログラム

2012年11月26日

[PHP] PAERのDBからPDOに移行した(Pager_Wrapper.phpも修正したよ)

enchanです。
今日は雨。

今までphpとmysqlとの組み合わせではpearのDBを使用していたんですが、
速度面が気になってきたので、思い切ってPDOに全面移行した。

pearのdbとPDO、mysqliなど速度面での比較は下記URLを参考
http://zapanet.info/blog/item/972

ネイティブのmysqliは別格の速さとして、PDOもなかなか速いと思う。
実際、自分でもpearとPDOを比べましたが、大体pearの70%くらいの速さになっていますね。


で、現在pearDBをラッパーしているクラスをPDO用に書き換え。
さらに、ページング処理もしているので(pearのpagerを使用)これも移行する。

ただ、自分は直接pagerを呼び出すのではなく、Pager_Wrapperを使用してるんです。
通常、Pager_WrapperはPDO用に記述されている関数が無くて、
自作でPDOに対応したものを作るしかないかなと思っていたら、既に同じこと考える人がいました。
Pager_Wrapper.php にPDO用の Pager_Wrapper_PDO関数を追加した。

早速Pager_Wrapper.phpをダウンロード。いい感じで動きました。
このダウンロードしたPDO対応のPager_Wrapperですが、SQLの『?』などパラメータに対応していなかったので、少し修正しました。
修正版のPager_Wrapper.phpを置いておきます。

posted by enchan at 15:45 | Comment(0) | TrackBack(0) | IT/プログラム

2012年11月13日

TPPとIT分野に関する本を読んだ

enchanです。
今日は晴れ。


「ネットの自由」vs.著作権: TPPは、終わりの始まりなのか
という本を読んだ。TPP(環太平洋経済連携協定)っていうと、農業分野や関税で騒がれていますが、IT分野においてはどうなっているのかな?

ITでメシ食ってる者としては興味があったのです。
ちょうど、発売日も2012/9/14と最近だったのでこいつを読んでみることにしました。

HOTな話題のAppleとサムスンの権利をめぐる訴訟に関することや、
著作権・知財・『初音ミク』のライセンスに関することなど具体例が挙げられていて、とても読みやすかった。

おしまい


posted by enchan at 17:38 | Comment(0) | TrackBack(0) | IT/プログラム