Email::Senderでメールを送る

nodeでどうしても文字コード周りがうまくいかんので諦めてperlにする。

use strict;
use warnings;
use utf8;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP;
use Email::MIME;
use Email::MIME::Creator::ISO_2022_JP;
use Try::Tiny;

my $mail = Email::MIME->create(
    header_str => [
        From    => '***',
        To      => '***',
        Subject => 'こんにちは',
    ],
    attributes => {
        content_type => 'text/plain',
        charset      => 'iso-2022-jp',
        encoding     => '7bit',
    },
    body_str => '本文ですよっと',
);

my $smtp = Email::Sender::Transport::SMTP->new({
    host => '***',
    port => 587,
    sasl_username => '***',
    sasl_password => '***',
});

try {
    sendmail($mail, { transport => $smtp });
} catch {
    warn "sending failed: $_";
};

perlとか久しぶりに書いたよ。