(専攻科実験)Perlでのメール送信
専攻科の実験で、RSS による情報フィードの活用のテーマのプログラム作成中。 実験学生が、作ってみたいプログラムの案にメールの事例が多かったので、 メールの送信方法について記載しておく。
もっとも簡単なメール送信例
メールを送るためには、メール形式について理解が必要となるので、以下の資料参照。
特に、日本語などの様々な言語でメールを送る場合には、 メールヘッダの"Content-Type:… charset=…"によって、送信する文字コードなどを 指定すれば良い。ただし、日本の古いガラケーでは、JIS コード以外だと文字化けする 場合も多いため、特に問題がないのなら日本語でメールを送るには、 JISコード(ISO-2022-JP)にすべきである。
以下に、最も単純な日本語メールを送るサンプルプログラムを示す。
#!/usr/bin/perl use Jcode ; use Email::MIME ; use Email::MIME::Creator ; # メールの形式に応じたデータを作る my $mail = Email::MIME->create( # メールヘッダの必須パラメータ header => [ # (注) headerは配列へのリファレンス # "foo@example.co.jp"と書くと # @exampleの部分が配列とみなされるので''を使う。 From => 'foo@example.co.jp' , To => 'bar@example.co.jp' , # ヘッダでの漢字は、MIME形式でエンコードしないとダメ。 Subject => Jcode->new( "実験" )->mime_encode() , ] , # その他のパラメータ attributes => { # (注) attributesはハッシュへのリファレンス content_type => 'text/html' , charset => 'ISO-2022-JP' , encoding => '7bit' , } , # メールの本文 body => Jcode->new( "こんにちは" )->jis ) ; # sendmail を使ってメールを送る。 # "-t" オプションをつけるとヘッダ部を追加できる # open( FH , "|..." ) で出力をプログラムにパイプで渡す。 open( FH , "| /usr/sbin/sendmail -t" ) or die( "Can't open sendmail" ) ; print FH $mail->as_string ; close( FH ) ;
台湾への工場見学旅行のお土産もらいましたぁ。
今週1週間、3EIの学生さんは工場見学旅行で、今年は前年に引き続き台湾となりました。 先程、先に無事にもどられた西先生より、おみやげを頂きました。 特に大きなトラブルもなく、見学先の大学との学生間交流もできたようでした。
まだ、3EIの学生さんは自主見学旅行の途中でしょうが、無事に帰ってきてくださいませ。
『今日は1限目から3EIの授業、先週のネタからすると××の説明するぞ!!』と 教室に向かったけど、誰もいませんでした…
# 気づくの遅っ!!