PerlでMIME::Liteを使ったメール送信の例
スクリプトをデプロイするとき、プログラムの実行がどうなっているのか知りたいし、実行結果も知りたい、そうすればもっと気分が良くなるだろう?
実は、perlを使ってメールを送る方法はたくさんあって、cpanでmailキーワードで検索するといっぱい出てきますが、実践してみると、メールを送るのに使うMIME::Liteはまだ非常に適切で、最も信じられないのは、ああ、簡単に添付ファイル付きのメールを送ることができるようになることです。
MIME::Liteを使ったメール送信の例を紹介します。
cpanのトップに使い方の詳細があります(http://search.cpan.org/~rjbs/MIME-Lite-3.028/lib/MIME/Lite.pm)。
1 つ目は、sendmail などのシステム独自のメールプログラムを使用する方法で、最も簡単です。
もう一つはsmtpを使ったもので、NetEaseの163メールボックスを例にとって説明します。
まずは例として、デフォルトの送信方法(sendmail)を紹介します。
#! /usr/bin/perl -w
use MIME::Lite;
my $msg = MIME::Lite->new(
From => '[email protected]',
To => '[email protected]',
Cc => '[email protected], [email protected]',
Subject => 'hello, my first mail from chenqing.org',
Type => 'multipart/mixed',
Data =>' other data'
);
$msg->attach(
Type => 'image/png',
Disposition => 'attachment',
Filename => 'other.png',
Path => '/home/king/perl/logo.png'
);
$msg->send;
html形式でもう一枚。
#! /usr/bin/perl -w
use MIME::Lite;
my $msg = MIME::Lite->new(
From => '[email protected]',
To => '[email protected]',
Cc => '[email protected], [email protected]',
Subject => 'hello, my first mail from chenqing.org',
Type => 'multipart/mixed',
Data =>' other data'
);
$msg->attach(
Type => 'text/html',
Data => qq{
<body>
This is my <b>good</b> image:
<img src="cid:logo.png">
</body>
},
);
$msg->attach(
Type => 'image/png',
Disposition => 'attachment',
Filename => 'other.png',
Id => 'logo.png',
Path => '/home/king/perl/logo.png'
);
$msg->send;
ここでは、smtpで送信する方法について説明します。
#! /usr/bin/perl -w
use MIME::Lite;
use MIME::Base64;
use Authen::SASL;
my $host='smtp.163.com';
my $pass='yourpass';
my $user='[email protected]';
my $msg = MIME::Lite->new(
From => '[email protected]',
To => '[email protected]',
Cc => '[email protected], [email protected]',
Subject => 'hello, my first mail from chenqing.org',
Type => 'multipart/mixed',
Data =>' other data'
);
$msg->attach(
Type => 'text/html',
Data => qq{
<body>
This is my <b>good</b> image:
<img src="cid:logo.png">
</body>
},
);
$msg->attach(
Type => 'image/png',
Disposition => 'attachment',
Filename => 'other.png',
Id => 'logo.png',
Path => '/home/king/perl/logo.png'
);
MIME::Lite->send('smtp', $host, Timeout=>60, AuthUser=>$user, AuthPass=>$pass);
$msg->send;
簡単でしょう?
関連
-
Perlのprint、printf、sprintfの使用例について説明します。
-
Perlの制御構造に関する学習ノート
-
perlを使ってデータテーブル(mysql)を分割し、データインスタンスを移行する。
-
dig と nali を使って DNS 解決アドレスが一貫しているかどうかを判断する Perl スクリプトです。
-
Perl プロセスの PID ルックアップの例
-
Perlによるファイル操作の例
-
ファイル自動削除のためのサーバースクリプト
-
PODのPerlのパーミッションの問題
-
[解決済み] Perlで「ハッシュの代入の要素数が奇数である」という警告が出る
-
[解決済み] Perlで環境変数を設定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン