我的perl脚本通过电子邮件附件显示Outlook电子邮件客户端中的完整路径(/abc/xyz/report.xls),但不会显示在Lotus Notes电子邮件客户端中。
环境:2010年Windows 7操作系统上的Outlook。
如何确保附件中不显示路径?
代码段:
&sendEmail(@subject, @message, $exception_report_xls);
sub sendEmail
{
my $subject = "@subject";
my $distlist = 'ayc@abc.com';
my $message ="\n\n\n@message \n";
my $send = system("\(echo \"$message\" ; uuencode \"$exception_report_xls\" \"$exception_report_xls\"\) | mailx -s \"$subject\" \"$distlist\"");
}
欣赏任何共鸣!
拉姆亚。
答案 0 :(得分:0)
您正在邮件来源中编写XLS文件的完整路径和文件名。因此,某些邮件客户端将显示完整路径。
如果您坚持使用(过时的)UUENCODE,请尝试这样做:
sub Send_Email_UUENCODE {
local($to, $from, $subj, $message, $attach) = @_;
local($i,$filename,$cmd,$att,$mailprog);
$i=length($attach)-1;
while( (substr($attach,$i,1) cmp '/')!=0 && $i>0) {$i--;}
$filename=substr($attach,$i+1,length($attach)-$i-1);
if ($attach) {
$cmd="uuencode " . $attach . ' ' . $filename;
$att=`$cmd`;
}
$mailprog = "/usr/sbin/sendmail -f " . $from;
open (MAIL, "|$mailprog $to") || die "Can't open $mailprog!\n";
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subj\n";
print MAIL "$message\n";
if ($attach) {
print MAIL "$att\n";
}
close (MAIL);
}
但是,最好使用MIME编码而不是UUENCODE。