如何使用perl在电子邮件中发送html内容

如何使用perl在电子邮件中发送html内容,perl,Perl,我是Perl新手 Iam使用以下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 $s

我是Perl新手

Iam使用以下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;
使用严格;
使用警告;
使用Email::Sender::Simple qw(sendmail);
使用Email::Sender::Transport::SMTP();
使用Email::Simple();
使用Email::Simple::Creator();
我的$smtpserver='xxxx.xx.x.x';
我的$smtpport=25;
我的$smtpuser=test@test.com';
我的$smtppassword='xxxxx';
my$transport=电子邮件::发件人::传输::SMTP->新建({
主机=>$smtpserver,
端口=>$smtpport,
sasl_用户名=>$smtpuser,
sasl_密码=>$smtppassword,
});
my$email=电子邮件::简单->创建(
标题=>[
To=>'xxx@xxxx.com',
From=>'test@test.com',
主题=>“嗨!”
],
body=>“尝试”,
);
sendmail($email,{transport=>$transport});
打印“成功”\n;
1.

使用Email::*名称空间中的模块的乐趣在于它们可以很好地协同工作。目前,您正在使用Email::Simple创建电子邮件,并使用Email::Sender发送电子邮件。但现在你不再想创建简单的电子邮件,你想创建更复杂的电子邮件。像这样发送复杂电子邮件的格式是。因此,您应该在Email::MIME名称空间中寻找可以插入的东西,以代替Email::Simple。看起来这正是你想要的

从大纲中:

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);

这看起来很简单,可以转换为您的用法。

使用Email::*名称空间中的模块的乐趣在于它们可以很好地协同工作。目前,您正在使用Email::Simple创建电子邮件,并使用Email::Sender发送电子邮件。但现在你不再想创建简单的电子邮件,你想创建更复杂的电子邮件。像这样发送复杂电子邮件的格式是。因此,您应该在Email::MIME名称空间中寻找可以插入的东西,以代替Email::Simple。看起来这正是你想要的

从大纲中:

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);

这看起来很简单,可以转换为您的使用方式。

谢谢Dave。它很好用。让我知道,text\u body=>$plain\u text的用途是什么?模块的文档中解释了
text\u body
参数-“一个保存额外纯文本消息正文内容的标量值。”发送HTML电子邮件时,您也应始终发送相同内容的计划文本版本。您可以使用sendmail($email,{transport=>$transport})使用
text\u body
参数.@Dave.Iam来实现这一点;用于发送邮件。在失败的情况下,如何获取成功或错误消息的响应代码阅读电子邮件::发件人::Simple()的文档指导您执行电子邮件::发件人::手动::快速启动(),这似乎非常彻底地回答了这个问题。阅读文档过时了吗?将代码放在StackOverflow的注释中通常是个糟糕的主意。如果你有一个单独的问题(如前所述),那么你最好开始一个新的讨论。谢谢Dave。它很好。让我知道,text\u body=>$plain\u text有什么用?模块的文档中解释了
text\u body
参数-“保存附加纯文本消息正文内容的标量值。”在发送HTML电子邮件时,您也应始终发送相同内容的计划文本版本。您可以使用
text\u body
参数执行此操作。@Dave.Iam使用sendmail($email,{transport=>$transport});用于发送邮件。如果失败,如何获取成功或错误消息的响应代码阅读电子邮件的文档::发件人::简单()指示您执行电子邮件::发件人::手动::快速启动()这似乎非常彻底地回答了这个问题。阅读文档过时了吗?将代码放在StackOverflow的注释中通常是一个糟糕的主意。如果你有一个单独的问题(就像这样),那么你最好开始一个新的讨论。