Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
Html 将从Perl脚本发送的邮件正文格式化为包含行和空格_Html_Perl_Email - Fatal编程技术网

Html 将从Perl脚本发送的邮件正文格式化为包含行和空格

Html 将从Perl脚本发送的邮件正文格式化为包含行和空格,html,perl,email,Html,Perl,Email,我需要通过perl脚本发送邮件: use MIME::Lite; GetOptions( 'mail|m:s' =>\$recipients ) my @recipients = split(/,/, $recipients); sub sendmail { chomp @recipients; $to = "@recipients"; $from = 'xyz@gmail.com'; $subject = 'Output'; $msg

我需要通过perl脚本发送邮件:

use MIME::Lite;

GetOptions(
    'mail|m:s' =>\$recipients
)
my @recipients = split(/,/, $recipients);

sub sendmail {
    chomp @recipients;
    $to = "@recipients";
    $from = 'xyz@gmail.com';
    $subject = 'Output';

    $msg = MIME::Lite->new(
        From     => $from,
        To       => $to,
        Subject  => $subject,
        Data     => $mailbody
    );

    $msg->attr("content-type" => "text/html");
    $msg->send;
    print "Email Sent Successfully\n";
}
在这里,我将输出附加到邮件体,如下所示:

mailbody.=qq(Welcome\n); 
这些语句包含必须通过电子邮件发送的输出

如何格式化此输出以包含其他行和/或空格?我认为
\n
甚至很多空格也不被邮箱接受。=qq(欢迎\n),这会产生一行内容。

您说过:

这意味着您正在编写HTML(或者至少告诉电子邮件客户端您正在编写)

如果您想发送纯文本并使用文本空白对其进行格式化,那么不要声称发送HTML

 "content-type" => "text/plain"
如果要发送HTML,请编写具有所需格式的HTML(例如,使用
..

指示段落,使用
style=“text indent:1em;”“
缩进块的第一行)。

您已经说过:

这意味着您正在编写HTML(或者至少告诉电子邮件客户端您正在编写)

如果您想发送纯文本并使用文本空白对其进行格式化,那么不要声称发送HTML

 "content-type" => "text/plain"
如果要发送HTML,请编写具有所需格式的HTML(例如,使用
..

指示段落,使用
style=“text indent:1em;”“
缩进块的第一行)。

如果要发送HTML(如
内容类型所示),则需要使用HTML标记(

..

等)设置文本格式

如果要使用换行符格式化文本,则需要将
内容类型
更改为
文本/普通

其他一些建议:

  • 我不推荐MIME::Lite。现在,您应该使用电子邮件中的内容::*名称空间-也许是(我想我昨天提到过)
  • 在将其拆分为
    @recipients
    之前,您应该
    chomp()
    $recipients
  • sendmail()
    中使用
    @recipients
    ,但不将数组传递给子例程。在子例程中使用全局变量是一种不好的做法,它会降低子例程的可移植性和维护难度
  • MIME::Lite要求在逗号分隔的字符串中包含多个收件人。因此,将
    $recipients
    拆分为
    @recipients
    是毫无意义的
如果你想发送HTML(正如你的
内容类型所暗示的那样),那么你需要使用HTML标签(

等)来格式化你的文本

如果要使用换行符格式化文本,则需要将
内容类型
更改为
文本/普通

其他一些建议:

  • 我不推荐MIME::Lite。现在,您应该使用电子邮件中的内容::*名称空间-也许是(我想我昨天提到过)
  • 在将其拆分为
    @recipients
    之前,您应该
    chomp()
    $recipients
  • sendmail()
    中使用
    @recipients
    ,但不将数组传递给子例程。在子例程中使用全局变量是一种不好的做法,它会降低子例程的可移植性和维护难度
  • MIME::Lite要求在逗号分隔的字符串中包含多个收件人。因此,将
    $recipients
    拆分为
    @recipients
    是毫无意义的

我已经整理了您代码中的缩进。非常欢迎您,但请以后自己动手。清除缩进是帮助他人(包括您自己)的重要工具理解你的代码。如果你让一群陌生人阅读你的代码,礼貌的做法是让代码尽可能容易理解。我已经整理了你代码中的缩进。非常欢迎你,但请以后自己做。清除缩进是帮助他人(包括你自己)的重要工具理解你的代码。如果你让一群陌生人阅读你的代码,礼貌的做法是让代码尽可能容易理解。