Net::SMTP を使ったサンプルコードを記載。モジュールは標準でインストールされているはずなので、CPANから追加なしで使えるはず。
#!/usr/bin/perl
#
# メール送信サンプル
#
use Encode;
use Net::SMTP;
use strict;
use warnings;
use utf8;
# サブルーチンを呼んでメールを送る
&mailSend();
sub mailSend {
# メールを作成します。
# http://chaichan.lolipop.jp/perlnote/perlnote2007-09-02.htm を参考にする
# 複数アドレスの送信ができるよう、ヘッダー部とNet::SMTPに送るデータが若干
# 違うのがミソ
my $from = 'root@foo.com';
my $mailto = 'user01@bar.com, user02@bar.com';
my @mailto = split(',', $mailto);
my $subject = Encode::encode('MIME-Header-ISO_2022_JP', 'メール送信テスト');
my $header = "From: $from\n" .
"To: $mailto\n" .
"Subject: $subject\n" .
"Mime-Version: 1.0\n" .
"Content-Type: text/plain; charset = ISO-2022-JP\n" .
"Content-Trensfer-Encoding: 7bit\n";
my $message = <<"BODY";
テストで送信するメールです
ここに本文を記載します。本文はヒアドキュメントを
利用して作成しています。
※本メールへの返信はしないでください。
BODY
my $body = Encode::encode('iso-2022-jp', $message);
# SMTPサーバに接続します。FQDNではなくIPアドレスでもok
my $smtp = Net::SMTP->new('smtp.foo.com');
if ( !$smtp ) {
print "メールサーバーにアクセスできません\n";
}
# メールを送信します。
$smtp->mail($from);
$smtp->to(@mailto);
$smtp->data();
$smtp->datasend($header);
$smtp->datasend($body);
$smtp->dataend();
$smtp->quit;
}
0 件のコメント:
コメントを投稿