Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl:HTML::Mason-以表格格式在HTML标记内打印perl哈希_Html_Perl_Email_Mason - Fatal编程技术网

perl:HTML::Mason-以表格格式在HTML标记内打印perl哈希

perl:HTML::Mason-以表格格式在HTML标记内打印perl哈希,html,perl,email,mason,Html,Perl,Email,Mason,我正试图发送一封关于散列值的html电子邮件(报告)。但我无法以表格格式打印哈希值。我正在使用执行perl命令(通过散列循环)并在报告末尾打印它。但是我的perl代码没有得到执行 use HTML::Entities; use Mail::Sendmail; use MIME::Lite; use Term::ANSIColor; use Time::localtime; use HTML::Mason; my $ti = localtime; my ( $day, $month, $year

我正试图发送一封关于散列值的html电子邮件(报告)。但我无法以表格格式打印哈希值。我正在使用执行perl命令(通过散列循环)并在报告末尾打印它。但是我的perl代码没有得到执行

use HTML::Entities;
use Mail::Sendmail;
use MIME::Lite;
use Term::ANSIColor;
use Time::localtime;
use HTML::Mason;

my $ti = localtime;
my ( $day, $month, $year ) = ( $ti->mday, $ti->fullmonth, $ti->year );

# DEFINE A HASH
%coins = ( "Quarter" => 25, "Dime" => 10, "Nickel" => 5 );

$html = <<END_HTML;
   Please direct any questions to <a href="mailto:abc@mydomain.com">MyEmailID</a><br><br>

  <table border='1'>
   <th>Keys</th><th>Values</th>
% while (($key, $value) = each(%coins)){       
   <TR>     
   <TD><% $key %></TD>      
   <TD><% $value %></TD>      
   </TR>       
% }
  </table>;

END_HTML

$msg = MIME::Lite->new(
    from    => 'abc@mydomain.com',
    To      => 'def@mydomain.com',
    Subject => 'Report',
    Type    => 'multipart/related'
);
$msg->attach(
    Type => 'text/html',
    Data => qq{
        <body>
        <html>$html</html>
        </body>
    },
);

MIME::Lite->send( 'smtp', 'xxxs.xxxx.xxxxx.com' );
$msg->send;
使用HTML::实体;
使用Mail::Sendmail;
使用MIME::Lite;
使用术语:ANSIColor;
使用时间::localtime;
使用HTML::Mason;
my$ti=本地时间;
我的($day,$month,$year)=($ti->mday,$ti->fullmonth,$ti->year);
#定义散列
%硬币=(“四分之一”=>25,“一角硬币”=>10,“镍”=>5);
$html='1abc@mydomain.com',
To=>'def@mydomain.com',
主题=>“报告”,
类型=>“多部分/相关”
);
$msg->attach(
类型=>'text/html',
数据=>qq{
$html
},
);
MIME::Lite->send('smtp','xxxs.xxxx.xxxxx.com');
$msg->send;
像这样的东西

# DEFINE A HASH
my %coins = ( "Quarter" => 25,
              "Dime" => 10,
              "Nickel" => 5, );

for my $no (keys %coins) {
    print qq(
    <table>
        <tr><td> $no </td></tr>
        <tr><td> $coins{$no} </td></tr>
    </table>
    );
}
#定义散列
我的%硬币=(“四分之一”=>25,
“一角硬币”=>10,
“镍”=>5,);
对于我的$no(钥匙%硬币){
打印qq(
$no
$coins{$no}
);
}

由于您只想生成一个表,因此无需使用HTML::Mason:

use HTML::Entities;
use Mail::Sendmail;
use MIME::Lite;
use Term::ANSIColor;
use Time::localtime;

my $ti = localtime;
my ( $day, $month, $year ) = ( $ti->mday, $ti->fullmonth, $ti->year );

# DEFINE A HASH
my %coins = ( "Quarter" => 25, "Dime" => 10, "Nickel" => 5 );

my $html = '<table border="1">
<thead><th>Keys</th><th>Values</th></thead>
<tbody>';

while ( my($key, $value) = each(%coins)) {
    $html .= "<tr><td>$key</td><td>$value</td></tr>";
}
$html .= "</tbody></table>";

my $greeting = 'Please direct any questions to <a href="mailto:abc@mydomain.com">MyEmailID</a><br><br>';
my $outtro = '<br><br>See yas later, alligator!';

$html = $greeting . $html . $outtro;

$msg = MIME::Lite->new(
    from    => 'abc@mydomain.com',
    To      => 'def@mydomain.com',
    Subject => 'Report',
    Type    => 'multipart/related'
);
$msg->attach(
    Type => 'text/html',
    Data => qq{
        <body>
        <html>$html</html>
        </body>
    },
);

MIME::Lite->send( 'smtp', 'xxxs.xxxx.xxxxx.com' );
$msg->send;
使用HTML::实体;
使用Mail::Sendmail;
使用MIME::Lite;
使用术语:ANSIColor;
使用时间::localtime;
my$ti=本地时间;
我的($day,$month,$year)=($ti->mday,$ti->fullmonth,$ti->year);
#定义散列
我的%硬币=(“四分之一”=>25,“一角硬币”=>10,“镍”=>5);
我的$html
键值
';
而(我的($key,$value)=每个(%coins)){
$html.=“$key$value”;
}
$html.=”;
my$greeting='请将任何问题发送到

'; 我的$outtro='

稍后见yas,alligator!'; $html=$greeting$html$outtro; $msg=MIME::Lite->new( from=>'abc@mydomain.com', To=>'def@mydomain.com', 主题=>“报告”, 类型=>“多部分/相关” ); $msg->attach( 类型=>'text/html', 数据=>qq{ $html }, ); MIME::Lite->send('smtp','xxxs.xxxx.xxxxx.com'); $msg->send;

除非您的电子邮件需要很多复杂性,否则可能不值得为此使用HTML::Mason。如果您要将HTML::Mason用于电子邮件,则需要设置脚本以调用-。不幸的是,您不能只在字符串中嵌入Mason命令。

我可以这样打印。但是,我如何将结果(表)附加到现有的html文本(我在电子邮件中发送的文本)中呢?我认为您必须重新考虑一下您的过程。你之前没有提到你是通过电子邮件发送的,所以稍微澄清一下你到底想做什么就好了。如果我正确理解了您的意思,一种方法可能是:生成一个HTML页面并临时保存,然后将该文件的副本作为电子邮件附件发送。我问题的第一行清楚地表明我正在尝试发送电子邮件。无论如何,谢谢你的尝试。但我需要它作为电子邮件正文,而不是作为附件。