perlのsmtpメール送信。gmailを使う

複数の宛先にメールを送る
※$smtp_accと$mail_fromは一緒じゃないといけない
utf-8で送るときはこちら→文字化けしないメールの送り方 

#!/usr/bin/perl

use lib '/usr/local/lib/perl/5.10.1/';
use Jcode;
use Net::SMTP;
use Net::SMTP::SSL;
use Authen::SASL;
use MIME::Entity;

my $smtp_server = 'smtp.gmail.com';
my $smtp_port = '465';
my $smtp_acc = '●●@gmail.com';#gmailまたはドメイン
my $smtp_pwd = '●●';#gmailパスワード

@mail = ('exsample@nantoka.com','exsample2@nantoka.com');

foreach $value(@mail){

my $mail_to = $value;
my $mail_bcc = 'bcc@example.com';
my $mail_from = '●●@gmail.com'; #日本語を含める時は、$mail_from = '超兄貴 <●●@gmail.com>'
my $mail_subject = 'テスト';
my $mail_body = <<"_MAILBODY_";
てすですよ
_MAILBODY_

$mail_subject = jcode($mail_subject)->jis;
$mail_subject = jcode($mail_subject)->mime_encode;
$mail_to = jcode($mail_to)->jis;
$mail_to = jcode($mail_to)->mime_encode;
$mail_bcc = jcode($mail_bcc)->jis;
$mail_bcc = jcode($mail_bcc)->mime_encode;
$mail_from = jcode($mail_from)->jis;
$mail_from = jcode($mail_from)->mime_encode;
$mail_body = jcode($mail_body)->jis;

my $err;
my $oSmtp;
my $oMime;

$oSmtp = Net::SMTP::SSL->new($smtp_server,Port => $smtp_port, Debug => 1);

if($oSmtp->auth($smtp_acc,$smtp_pwd)){
 $oSmtp->mail($mail_from);
 $oSmtp->to($mail_to);
 $oSmtp->bcc($mail_bcc);
 $oSmtp->data();
 $oMime = MIME::Entity->build(
 From     => $mail_from,
 To       => $mail_to,
 Bcc      => $mail_bcc,
 Subject  => $mail_subject,
 Data     => $mail_body);
 $oSmtp->datasend($oMime->stringify);
 $oSmtp->dataend();
 $oSmtp->quit;
}else{
 $err = 'SMTP Server Authentication Error!!';
}


}


おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください