我用这个脚本发送了文本文件,电子邮件带有附件,但当我打开附件时,它是空白的。知道为什么吗?我错过什么了吗。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;
您对attach
的参数有点困惑。来自精细手册:
文件名
可选。附件的名称。您可以使用它为将附件保存到磁盘的最终用户提供推荐的文件名。只有当"路径"末尾的文件名不足,或者使用"数据"而不是"路径"时,才需要此选项。您不应在此处输入路径信息(例如,不应使用"/"、"\"或":"字符)。[…]
路径
替代"数据"或"FH"。包含数据的文件的路径。。。实际上,它可以是任何可打开()的表达式。如果它看起来像一个路径,那么最后一个元素将自动被视为文件名。另请参阅"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" ;