Net::SMTP::TLS

SMTPSクライアントモジュール。SMTP+STARTTLS、及び、SMTP認証をサポートする。

use Net::SMTP::TLS;
パッケージをロードする。

my $smtp = Net::SMTP::TLS->new($host[, %options);
$host:SMTPサーバのホスト名:ポート番号、または、IPアドレス:ポート番号。
   ポート番号のデフォルトは25。%options内のHostパラメタとは排他使用。
%options:主要なオプションは下記の通り
 Hello:HELO/EHLOコマンドに指定するドメイン名。
 Host:SMTPサーバのホスト名、または、IPアドレス。$hostとは排他使用。
 Port:SMTPサーバのポート番号。$hostとは排他使用。
 User:ユーザ名。
 Password:パスワード。
 NOTLS:STARTTLSを使用しない。
 Timeout:タイムアウト時間、デフォルトは120秒。
 Debug:trueを指定するとSTDERRにデバッグメッセージを表示する。

メール送信用メソッドは、Net::SMTPと完全互換。 典型的な使い方は下記。

my $mail = << "EOL";
To: $to_saddr
From: $from_addr
Subject: $subject
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

Hello world!
EOL

my $smtp = Net::SMTP::TLS->new($host,
    Debug => $debug , Hello => $domain,
    User => $user, Password => $pqsswd)
    || return errorlog('(SMTP) can not connect SMTP Server');

    my $send = eval {
        $smtp->mail($from_addr);
        $smtp->to(@to_addr);
        $smtp->data();
        $smtp->datasend($mail);
        $smtp->dataend();
        $smtp->quit;
        1;
    };
    unless ($send) {
        errorlog('(SMTP) ' . $@);
        return 0;
    }