附件在发送的电子邮件中为空白

时间:2011-05-25 20:34:15

标签: perl mod-perl2

我已经使用此脚本发送文本文件,电子邮件随附附件,但是当我打开附件时,它是空白的。任何想法为什么?我错过了什么。 THX

#!/usr/bin/perl -wl
my $msg = MIME::Lite->new(
    From    => 'xxx.net',
    To      => 'xxx.com',
    Subject => 'Report',
    Type    => 'multipart/mixed',
)or die "Error creating multipart container: $!\n";
$msg->attach(
    Type     => 'TEXT',
    Data     => " Please check the attached file.",
)or die "Error adding the text message part: $!\n";
$msg->attach (
   Type => 'text/plain',
   Path => '/myfile/file1',
   Filename => 'result.txt',
   Disposition => 'attachment'
)or die "Error adding the attached file part: $!\n" ;
$msg->send;

1 个答案:

答案 0 :(得分:3)

你对attach的论点感到有些困惑。来自fine manual

  

<强>文件名
  可选。附件的名称。您可以使用此选项为正在将附件保存到磁盘的最终用户提供建议的文件名。如果“路径”末尾的文件名不合适,或者您使用的是“数据”而不是“路径”,则只需要此选项。您不应在此处输入路径信息(例如,不应使用“/”或“\”或“:”字符)。

     

[...]

     

<强>路径
  替代“数据”或“FH”。包含数据的文件的路径...实际上,它可以是任何open()表达式。如果它看起来像一个路径,最后一个元素将自动被视为文件名。另请参阅“ReadNow”。

Path是您要附加的文件的完整路径,Filename是您希望接收者查看该文件的名称。

我想你想要这个:

$msg->attach (
   Type => 'text/plain',
   Path => '/myfile/file1/result.txt',
   Filename => 'result.txt',
   Disposition => 'attachment'
) or die "Error adding the attached file part: $!\n" ;