我已经运行了一些脚本来使用perl生成存储容量报告和配置设置报告。我想使用perl将此报告发送到html中的邮件ID。
请注意我是perl编程的新手。
答案 0 :(得分:2)
你的问题很模糊,所以很难提供很多帮助。这可能会指出你正确的方向。
你基本上有三个任务。
由于我对你的报道一无所知,我无法真正帮助第1步。如果您的文件是CSV格式,那么here对您有用。值得指出的是,如果您正在生成此报告,那么您可以使用更易于解析的格式生成它 - 例如JSON。
对于第2步,我建议使用模板引擎。我使用Text:CSV,但其他选项也可用。我们的想法是,您创建一个模板文件,其中包含您希望变量数据所在的所有带有“标记”的HTML。在一个简单的层面上,它可能看起来像这样:
<html>
<head><title>Some Title</title></head>
<body>
<h1>Some Title</h1>
<p>Blah...</p>
<table>
[% FOREACH row IN data -%]
<tr><td>[% row.value %]</td><td>[% row.another_value %]</td></tr>
[% END -%]
<table>
</body>
</html>
假设它位于名为email.tt
的文件中,并且您的数据位于名为@data
的哈希数组中,那么您将按照以下方式处理模板:
use Template;
@data = ({
value => 'something',
another_value => 'something else',
}, {
value => 'something',
another_value => 'something else',
});
my $tt = Template->new;
$tt->process('email.tt', { data => \@data }, \$email_body)
or die $tt->error;
这将为您提供$email_body
中的扩展HTML。这就把我们带到了第3步。
我建议Template Toolkit发送电子邮件。
use Email::Stuffer;
Email::Stuffer->from ('you@example.com')
->to ('someone_else@example.com')
->html_body($email_body)
->send;