0

私はPerlが初めてです。

メールの送信に次の perl コードを使用しています。

そして、その正常に動作します。

しかし、どうすればhtmlコンテンツを含めることができますか?

use strict;
use warnings;

use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP ();
use Email::Simple ();
use Email::Simple::Creator ();

my $smtpserver = 'xxxx.xx.x.x.';
my $smtpport = 25;
my $smtpuser   = 'test@test.com';
my $smtppassword = 'xxxxx';

my $transport = Email::Sender::Transport::SMTP->new({
  host => $smtpserver,
  port => $smtpport,
  sasl_username => $smtpuser,
  sasl_password => $smtppassword,
});

my $email = Email::Simple->create(
  header => [
    To      => 'xxx@xxxx.com',
    From    => 'test@test.com',
    Subject => 'Hi!'

  ],
  body => "<table><tr><td>try</td></tr></table>",
);

sendmail($email, { transport => $transport });
print "Success \n";
1;
4

1 に答える 1

5

Email::* 名前空間のモジュールを使用する利点は、それらがすべてうまく連携することです。現在、Email::Simple を使用してメールを作成し、Email::Sender を使用して送信しています。しかし今では、単純なメールを作成するのではなく、より複雑なメールを作成したいと考えています。このような複雑なメールを送信するための形式はMIMEです。そのため、Email::MIME 名前空間で、Email::Simple の代わりにプラグインできるものを探す必要があります。Email::MIME::CreateHTMLは、まさにあなたが望むもののように見えます。

あらすじより:

use Email::MIME::CreateHTML;
my $email = Email::MIME->create_html(
        header => [
                From => 'my@address',
                To => 'your@address',
                Subject => 'Here is the information you requested',
        ],
        body => $html,
        text_body => $plain_text
);

use Email::Send;
my $sender = Email::Send->new({mailer => 'SMTP'});
$sender->mailer_args([Host => 'smtp.example.com']);
$sender->send($email);

これは、使用法に変換するのに十分簡単なようです。

于 2013-03-12T13:54:59.160 に答える