2018年7月13日金曜日

Perl でメール送信(Email::Sender編) 添付ファイルあり

Email::Sender を使ったサンプルコードを記載。今度は添付ファイルありバージョン。


#!/usr/bin/perl
#
# メール送信サンプル
#
use Encode;
use Email::MIME;
use Email::MIME::Creator;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP;
use IO::All;
use strict;
use warnings;
use utf8;

# サブルーチンを呼んでメールを送る
&mailSend();

sub mailSend {
   my $from    = 'foo@localhost';
   my $mailto  = 'user01@bar.com, user02@bar.com';
   my $subject = Encode::encode('MIME-Header-ISO_2022_JP', 'メール送信テスト');
   my $message = <<"BODY";
テストで送信するメールです

ここに本文を記載します。本文はヒアドキュメントを
利用して作成しています。

※本メールへの返信はしないでください。
BODY

  my $body = Encode::encode('iso-2022-jp', $message);
   my $file = '/home/A0gaku/attachment.zip';

  my @parts = (
     Email::MIME->create(
       'attributes' => {
       'content_type' => 'text/plain',
       'charset'      => 'ISO-2022-JP',
       'encoding'     => '7bit',
       },
       'body' => $body,
     ),

    Email::MIME->create(
       'attributes' => {
       'fimename'     => 'attached.zip',
       'content_type' => 'application/octet-stream',
       'encoding'     => 'base64',
       'name'         => 'attachment.zip',
       },
       'body' => io($file)->all,
     ),
   );

  my $mail = Email::MIME->create(
     header   => [
       From    => "$from",
       To      => "$mailto",
       Subject => "$subject",
      ],

    parts => [@parts],
   );


   my $transport = Email::Sender::Transport::SMTP->new({
     host => 'smtp.foo.com',
     port => 25,
   });

  sendmail($mail, { transport => $transport });
}

0 件のコメント:

コメントを投稿