ページ

2012年2月6日月曜日

FML のメール本文のヘッダとフッダにテキスト文を挿入する方法


もう何年ぶりだろうFMLなんていじるのは・・

99年くらいから2007年くらいまでかなぁ、SNSってものが出来る前って、メーリングリストを使ってダイエットサポートをしていたんです。その頃にさんざんいじくった FMLだったんですが、その後全く使っていませんでした。

最近になって、さくらインターネットのFMLを利用してMLをはじめているんですが、さくらインターネットはコントロールパネルからある程度の操作ができるので使いやすくていいですね。

ただ、表題の操作はコントロールパネルからできないので、昔やったことを思い出しながら設定してみました。備忘録として残しておきます。


<FML のメール本文のヘッダとフッダにテキスト文を挿入する方法>

home/(アカウント)/fml/spool/ml/(ML名)/config.ph

このファイルを書き換えることで、MLごとの動作が制御できます。
文字コードは SJIS

ファイル内に、下記の記述を追加します。
追加する場所はどこでも大丈夫

-------------
$SMTP_OPEN_HOOK = q#
local($head) = &GET_BUFFER_FROM_FILE("$DIR/header.txt");
&ENVELOPE_PREPEND('Body', $head);
local($foot) = &GET_BUFFER_FROM_FILE("$DIR/footer.txt");
&ENVELOPE_APPEND('Body', $foot);
#;
-------------

同じディレクトリに header.txt footer.txt という二つのファイルを設置することで
header.txt に書かれた文字がMLに配信されるメールの上部に、footer.txt に書かれた文字がメールの下部に印字されて配信されるという方法です。

ただ、これだとヘッダやフッダの文章を変更するのに、いちいちFTPを立ち上げて使わないといけないので、ちょっと工夫してみました。

さくらインターネットの場合はコントロールパネルから一部ファイルの書き換えをすることができるので、使っていないファイルを利用して、コントロールパネルから、メール本文のヘッダとフッダを変更できるよう工夫してみたわけです。

-------------
$SMTP_OPEN_HOOK = q#
local($head) = &GET_BUFFER_FROM_FILE("$DIR/guide");
&ENVELOPE_PREPEND('Body', $head);
local($foot) = &GET_BUFFER_FROM_FILE("$DIR/confirm");
&ENVELOPE_APPEND('Body', $foot);
#;
-------------

guide は利用者がメールコマンドでメーリングリストの紹介を取り出すときの、紹介文を書いておくファイル。

confirm はMLに登録する際の確認メッセージを書いておくファイル

どちらも、ボクのMLでは使用しないので、header.txt footer.txt の代わりに使うようにしました。これで、コントロールパネルからの書き換えが可能になります。



ただ、この方法だと、HTMLメールで書かれたメールには印字されないです。

最近はHTMLのメールが多いんですね。HTML/テキストって、昔は無駄にファイルサイズを大きくするのはマナー違反だって言われていたし、真っ白な背景に文字だけのHTMLメールを送る人なんかあまりいなかったけど
最近は通信速度も早くなったし、パケット定額も定着してて、ボク自身も意識していなかったけど、スマートフォンから送るメールって、デフォルトがHTMLですもんね。プレーンテキストのメールを送れないアプリもあるようだし・・

どうせMLに投稿されるのは、真っ白なHTMLメールばかりだし、強制的にテキストに変換するようにしてみたんだけど・・

スマホからのメールが見事に文字化け

以前使っていた、HTMLを削除しちゃう方法だとダメみたい。

何か方法を検討しないと・・

0 件のコメント:

-PR-