我已经使用此脚本发送文本文件,电子邮件随附附件,但是当我打开附件时,它是空白的。任何想法为什么?我错过了什么。 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;
答案 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" ;