2

http://learn.perl.org/examples/email.htmlからリストされている例を使用して、テスト perl の電子メールを使用しようとしています 。これを Windows 7 で実行しています。何らかの理由で、Email::Sender::Simple は、Email::Sender がロードされたときにロードされていない他のモジュールを参照しています。

これらのモジュールをロードして、各モジュールですべての参照パッケージを検索せずにすべての依存関係がロードされるようにするにはどうすればよいでしょうか? 現在、私は ActiveState と ppm install を使用しています。

use 5.14.2;
use strict;
use warnings;

# first, create your message
use Email::MIME;
my $message = Email::MIME->create(
  header_str => [
    From    => 'you@example.com',
    To      => 'friend@example.com',
    Subject => 'Happy birthday!',
  ],
  attributes => {
    encoding => 'quoted-printable',
    charset  => 'ISO-8859-1',
  },
  body_str => "Happy birthday to you!\n",
);

# send the message
use Email::Sender::Simple qw(sendmail);
sendmail($message);

もちろん、%INC をダンプすることもできますが、出力には大量のモジュールが含まれています。理想的には、Email::MIME と Email::Sender::Simple をロードして、これを機能させたいと考えています。

4

2 に答える 2

3

を使用することをお勧めしMail::Senderます。ActivePerl では を使用してインストールできますppm install Mail::Sender。Linux では、

sudo apt-get install libmail-sender-perl

このモジュールは非常に用途が広く、複数の添付ファイル、インライン化、SMTP パスワード認証 (NTLM を含む - Exchange サーバーと通信するために必要) をサポートしています。

これは、次を使用して HTML メールを送信する例Mail::Senderです。

use Mail::Sender;

my $sender = new Mail::Sender({
    # provider may require using port 587:
    smtp    => "smtp.example.com",
    # auth parameters below are optional
    # and depend on provider requirements
    auth    => "LOGIN",
    authid  => $username,
    authpwd => $password,
    from    => "myself@example.com",
});

$sender->Open({
    to       => "recipient@example.com",
    cc       => "anotherguy@example.com",
    subject  => "Subject line",
    ctype    => "text/html",
    encoding => "7bit",
}) or die ($Mail::Sender::Error, "\n");

my $html = "<html><body>Test HTML content</body></html>";

$sender->SendEx($html)
    or die ($Mail::Sender::Error, "\n");
$sender->Close();

print "Test message has been sent\n";
于 2012-12-29T23:42:53.320 に答える
2

Email::Sender::SimpleEmail::Senderは 2 つの異なるモジュールなので、次のようにする必要があります。

コマンドから:

C:\>cpan
C:\>install Email::Sender::Simple

それで全部です。

于 2012-12-29T23:30:15.083 に答える