[perl] やる夫がテンプレートを利用したメール送信プログラムを作成したようです。
テンプレートを利用したメール送信サンプルプログラム
perl moduleをいくつか利用します。指定しないと下記のようなメッセージで起こられてしまいます。
Can't locate object method "new" via package
templateファイルと、本体プログラムが必要となります。ちなみにメールは送信できる環境のものとします。外のメールアドレスに送る場合は、外フィルタが開いていないとだめです。そんなに気にしなくてもよいと思いますが・・・。
____
/ \
/ _ノ ヽ、_ \
/ o゚((●)) ((●))゚o \ ほんとはrubyとかjavaを書きたいんだお・・・
| (__人__) |
\ ` ⌒´ /
____
/ \
/ _ノ ヽ、_ \
/ o゚⌒ ⌒゚o \ でもrubyは、リア充言語だから、やる夫には向いてないお
| (__人__) |
\ ` ⌒´ /
____
/⌒ ⌒\
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ だからperlでやるお!
| |r┬-| |
\ `ー'´ /
なんとなくですが、rubyとかjavaはリア充言語のような印象があります。今の会社に勤めてから、全くプログラムを書いていません。昔はマクロ一筋でしたが、それもしていない・・・。最近ちょっとだけperlを勉強し始めました。
プログラム
# vi mail.pl
-----
#!/usr/local/bin/perl
### module specification
use strict;
use MIME::Lite;
use Template;### parameter
my @message = (
{
yaruo => 'yaruo mail',
yaranaio => 'yaranaio mail',
},
{
yaruo => 'test mail',
yaranaio => 'test mail',
}
);### tempate set
my $template = Template->new;
my $output;$template->process(
'yaruo.txt',
{message=>\@message},
\$output,
);### mail header
my $msg = MIME::Lite->new(
Type => 'multipart/alternative',
Subject => 'Subject test_mail',
From => 'hogehoge@neet.com',
To => 'yaruo@neet.com',
Encoding => '8bit',
);### html
$msg->attach(
Type => 'text/html; charset=\'utf-8\'',
Data => $output,
);### text
$msg->attach(
Type => 'text/plain; charset=\'utf-8\'',
Data => 'please refer to the html mail.',
);$msg->send();
-----
なるべくシンプルに作成したつもりです。カスタマイズするには、”### parameter”と”### mail header”箇所を変更すればよい感じだと思います。
テンプレートファイル
# vi yaruo.txt
-----
<html>
<body>
[% FOREACH p = message -%]<font color="#FFFF00">[% p.yaruo %]</font>
<font color="#FF0000">[% p.yaranaio %]</font>[% END -%]
</body>
</html>
-----
プログラム実行
# ./mail.pl
特にメッセージなし、問題なければ指定したアドレスにメールが送信されている筈。こんなhtmlメールが届く。
| 固定リンク
「perl」カテゴリの記事
- [perl] やる夫が改行を取り除くようです。(2008.07.11)
- [perl] やる夫がテンプレートを利用したメール送信プログラムを作成したようです。(2008.07.09)
- [perl] やる夫が数値判定するプログラムを組んだようです。(2008.07.07)


コメント