2018年7月5日木曜日

Perl でメール送信(MIME::Lite編) 添付ファイル無し

MIME::Lite を使ったサンプルコードを記載。モジュールは標準ではインストールされていないので、CPANから追加して使うこと。

perldoc を読むと

WAIT!
     MIME::Lite is not recommended by its current maintainer. There are a
     number of alternatives, like Email::MIME or MIME::Entity and
     Email::Sender, which you should probably use instead. MIME::Lite continues
     to accrue weird bug reports, and it is not receiving a large amount of
     refactoring due to the availability of better alternatives. Please
     consider using something else
.

非推奨のようです。色々調べてみたのですが、技術評論社の第20回 Email::Sender:メールを送信するが詳しいです。


#!/usr/bin/perl
#
# メール送信サンプル
#
use Encode;
use MIME::Lite;
use strict;
use warnings;
use utf8;

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

sub mailSend {
   my $from    = 'root@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 $msg = MIME::Lite->new(
     From => "$from",
     To => "$mailto",
     Subject => "$subject",
     Type => 'text/plain; charset="ISO-2022-JP"',
     Encoding => '7bit',
     Data => "$body"
   );

  # SMTPサーバを指定します。FQDNではなくIPアドレスでもok
   my $smtp = 'smtp.foo.com';

  $msg->send('smtp', $smtp);
}

0 件のコメント:

コメントを投稿