我正在尝试使用Excel::Writer::XLSX
和MIME::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文件吗?
答案 0 :(得分:4)
shift
两次$filename
(第2和第6个字符串)和变量$filepath
未声明。可能在这里错误?