使用MIME :: Lite将xlsx附加到电子邮件

时间:2014-07-01 07:25:10

标签: excel perl mime-types

我正在尝试使用Excel::Writer::XLSXMIME::Lite发送附带xlsx文件的电子邮件。 excel文件的生成工作,因为我可以在Excel中scp并打开文件而没有任何问题。当我尝试从我的电子邮件客户端(Outlook 2013)打开附件时,我收到此错误:

  

“Excel无法打开文件”from_2014-06_to_2014-07.xlsx“因为   文件格式或文件扩展名无效。验证文件是否有   没有损坏,文件扩展名与。的格式匹配   文件。“

outlook显示的文件大小为444B,但实际为95K。我之前使用Spreadsheet::WriteExcel和mime类型“application / vnd.ms-excel”发送xls文件没有任何问题。

以下是我尝试发送电子邮件的内容:

sub send_mail{
    my $filename = shift;
    my $to_email = shift;
    my $from_email = shift;
    my $date = shift;
    $filename = shift;

    my $mail = MIME::Lite->new(
        'From'          => '$from_email',
        'To'            => $to_email,
        'Subject'       => "Radio/TV stats $date",
        'Type'          => 'multipart/mixed',
        #'content-type'  => 'application/zip',
        #'Data'       => "Here is your stuff",
    );

    $mail->attach(
        'Type'          => 'TEXT',
        'Data'          => "Here is your stuff",
    );

    $mail->attach(
        #'Type'          => 'application/vnd.ms-excel',
        'Type'          => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
        'Path'          => $filepath,
        'Filename'      => $filename,
        'Disposition'   => 'attachement',
    );

    $mail->send('sendmail');
}

任何人都可以帮助我附上xlsx文件吗?

1 个答案:

答案 0 :(得分:4)

shift两次$filename(第2和第6个字符串)和变量$filepath未声明。可能在这里错误?