附件使用perl脚本通过电子邮件显示完整路径

时间:2014-07-15 18:00:08

标签: perl

我的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\"");

}

欣赏任何共鸣!

拉​​姆亚。

1 个答案:

答案 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。