メール送信


 Net::SMTPモジュールを使うと簡単です。
 日本語部分の処理にはJcodeモジュールを使っています。
use strict;
use warnings;
use Jcode;
use Net::SMTP;

my $server = 'mail.example.com'; # メールサーバ
my $debug = 0; # デバッグフラグ
my $timeout = 10; # タイムアウト時間

my $sender = 'sender@example.com'; # 送信者
my $to = 'recipient@example.com'; # 宛先

my $smtp = Net::SMTP->new(
    $server,
    Debug => $debug,
    Timeout => $timeout) or die $@;

$smtp->mail($sender);
$smtp->to($to);
$smtp->data();

my $subject = get_subject();
$subject = Jcode->new($subject)->mime_encode;

my $header = get_header($sender, $to, $subject);

my $body = get_body();
$body = Jcode->new($body)->iso_2022_jp;

$smtp->datasend($header);
$smtp->datasend("\n");
$smtp->datasend($body);
$smtp->quit;
exit;

# メール本文
sub get_body {
    my $body = <<'EOD';
メールのテストです。
日本語で送ってみます。
EOD

    return $body;
}

# サブジェクト
sub get_subject {
    return 'テストメール';
}

# メールヘッダ
sub get_header {
    my $from = shift;
    my $to = shift;
    my $subject = shift;

    my $header =<<EOD;
From: $from
To: $to
Subject: $subject
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
EOD
    
    return $header;
}

関連項目

添付ファイル付きのメールを送信する
メールサブジェクトの作成
・メール受信