Perl でメール送信プログラムを作る。
Gmail の SMTP を使います。
use Email::Simple;
use Email::Sender::Simple qw/sendmail/;
use Email::Sender::Transport::SMTP::TLS;
use Encode;
my $sender = Email::Sender::Transport::SMTP::TLS->new(
host => 'smtp.gmail.com',
port => 587,
username => 'myaccount@mydomain.com',
password => 'password',
);
my $email = Email::Simple->create(
header => [
From => '"サポートデスク" <support@mydomain.com>',
To => $mailto,
Subject => encode('MIME-Header-ISO_2022_JP', 'メールのタイトル'),
],
attributes => {
content_type => 'text/plain',
charset => 'ISO-2022-JP',
encoding => '7bit',
},
body => $body,
);
sendmail($email, {transport => $sender});
ここまでは意外とあっさりできた。
以下、ハマったところ。
安全性の低いアプリの許可を有効にする
このやり方では、GoogleAppsアカウントのメールアドレスとパスワードをソースコードに書かねばならない。さすがに自分のアカウントを使用することはできないので、新規にアカウントを発行した。
しかし、新規アカウントでやってみると「Auth failed: 534 5.7.14」というエラーが出て全くうまくいかない。
調べてみたところ、Googleアカウントの設定が必要らしい。
- 新規で作成したアカウントでGoogleAppsにログイン → 右上のメールアドレス → アカウント → ログインとセキュリティ → 安全性の低いアプリの許可
で、安全性の低いアプリの許可を「有効」にする。