summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/customize
diff options
context:
space:
mode:
authorfukachan <fukachan>2005-11-28 11:16:47 +0000
committerfukachan <fukachan>2005-11-28 11:16:47 +0000
commit4d8d34869a82ddef3e3670853f7a58190b817d89 (patch)
tree07fc2783c9a7dabf0ebaa1cb47c4f0a54972e83b /fml/doc/ja/tutorial/customize
parentf225a7fbec8699275f19a7b2c6a304c8fbbe32ff (diff)
downloadfml8-4d8d34869a82ddef3e3670853f7a58190b817d89.tar.gz
fml8-4d8d34869a82ddef3e3670853f7a58190b817d89.tar.bz2
fml8-4d8d34869a82ddef3e3670853f7a58190b817d89.zip
add recipes on delivery
Diffstat (limited to 'fml/doc/ja/tutorial/customize')
-rw-r--r--fml/doc/ja/tutorial/customize/chapter.ml_style.sgml12
-rw-r--r--fml/doc/ja/tutorial/customize/recipes.delivery.sgml158
2 files changed, 169 insertions, 1 deletions
diff --git a/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml b/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml
index cc4a8694..1656cc63 100644
--- a/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml
+++ b/fml/doc/ja/tutorial/customize/chapter.ml_style.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: chapter.ml_style.sgml,v 1.8 2005/10/29 04:28:41 fukachan Exp $
+ $FML: chapter.ml_style.sgml,v 1.9 2005/11/19 03:45:05 fukachan Exp $
-->
@@ -45,4 +45,14 @@
</sect1>
+<sect1 id="cuctomize.recipes.delivery">
+ <title>
+ レシピ’s [配送関連]
+ </title>
+
+<!-- TABLE_OF_RECIPES -->
+&sect.customize.delivery.recipes;
+
+</sect1>
+
</chapter>
diff --git a/fml/doc/ja/tutorial/customize/recipes.delivery.sgml b/fml/doc/ja/tutorial/customize/recipes.delivery.sgml
new file mode 100644
index 00000000..e9b34dd2
--- /dev/null
+++ b/fml/doc/ja/tutorial/customize/recipes.delivery.sgml
@@ -0,0 +1,158 @@
+<!--
+ $FML: @recipe_template,v 1.1 2003/01/07 11:39:13 fukachan Exp $
+-->
+
+<qandaset>
+
+<qandaentry>
+
+<question>
+<para>
+Subject: に応じて配送リストを変更したい
+</para>
+</question>
+
+<answer>
+<para>
+Subject のキーワードによって受信者を切替えることを考えます。
+</para>
+
+<para>
+たとえばSubjectに「資料請求」とあるメールであれば、MLドライバがちょ
+くせつ資料請求を担当する人たちへフォワードしてあげると効率がよいでしょ
+う。
+</para>
+
+<para>
+これを実現するためには、こんな HOOK が考えられます。
+<screen>
+
+$distribute_run_start_hook = q{
+ my $config = $curproc->config();
+ my $header = $curproc->incoming_message_header();
+ my $subject = $header->get('subject') || '';
+
+ use Mail::Message::String;
+ my $sbj = new Mail::Message::String $subject;
+ $sbj->charcode_convert_to_internal_code();
+ $buf = $sbj->as_str();
+
+ my $map = '';
+ # 注意: このファイルは EUC-JP で書いて下さい
+ if ($buf =~ /資料請求/i) {
+ # 資料請求をうけたら info@example.co.jp 相当のメンバーへ送信
+ $map = '$ml_home_dir/recipients.info';
+ }
+ else {
+ # デフォルト
+ $map = '$ml_home_dir/recipients';
+ }
+
+ if ($map) {
+ $config->set("recipient_maps", $map);
+ }
+};
+
+</screen>
+ここで $ml_home_dir/recipients.info (/var/spool/ml/elena/recipients.info)
+には資料請求を担当する人たちのアドレスが書かれています。
+</para>
+</answer>
+
+</qandaentry>
+
+
+<qandaentry>
+
+<question>
+<para>
+昼と夜で配送リストを変更する
+</para>
+</question>
+
+<answer>
+<para>
+前のレシピも参照して下さい。
+基本的なロジックは同じで、条件文が時間になるだけです。
+<screen>
+
+$distribute_run_start_hook = q{
+ my $config = $curproc->config();
+
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
+ localtime(time);
+
+ my $map = '';
+ if ($hour > 9 && $hour <= 17) {
+ # 昼の部の人たち
+ $map = '$ml_home_dir/recipients.daytime';
+ }
+ else {
+ # 夜の部の人たち
+ $map = '$ml_home_dir/recipients.night';
+ }
+
+ if ($map) {
+ $config->set("recipient_maps", $map);
+ }
+};
+
+</screen>
+</para>
+</answer>
+
+
+</qandaentry>
+
+
+<qandaentry>
+
+<question>
+<para>
+/etc/group を反映したML
+</para>
+</question>
+
+<answer>
+
+<para>
+&fml8; の IO は IO::Adapter による抽象化をしています。たとえば受信者を
+グループ fml に含まれるユーザ宛にするには次のようにするだけで十分です。
+<screen>
+[config.cf]
+
+recipient_maps = unix.group:fml
+
+</screen>
+
+</para>
+</answer>
+
+
+</qandaentry>
+
+
+<qandaentry>
+
+<question>
+<para>
+送信者(投稿者)には ML の記事は配送しない
+</para>
+</question>
+
+<answer>
+
+<para>
+この機能が必要なのは、送信したメールの記録が残るメールリーダを使ってい
+る場合、MLから戻ってくる記事は必要ないと思う人がいるからだそうです。
+</para>
+
+<para>
+&fml8; では、いまのところ出来ません。未実装です。
+</para>
+</answer>
+
+</qandaentry>
+
+
+</qandaset>