#excel #perl #mime-types
#excel #perl #mime-типы
Вопрос:
Я пытаюсь отправить электронное письмо с прикрепленным файлом xlsx, используя Excel::Writer::XLSX
и MIME::Lite
. Генерация файла Excel работает, так как я могу scp и открыть файл в Excel без каких-либо проблем. Когда я пытаюсь открыть вложение из своего почтового клиента (Outlook 2013), я получаю эту ошибку:
«Excel не может открыть файл»from_2014-06_to_2014-07.xlsx » поскольку формат файла или расширение файла недопустимы. Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла».
Размер файла, отображаемого Outlook, составляет 444B, но на самом деле это 95K. Раньше я отправлял файлы xls с помощью Spreadsheet::WriteExcel
и mime типа «application / vnd.ms-excel» без каких-либо проблем.
Вот что я пытался отправить по электронной почте:
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. Попробуйте
'Data' => "File size:". -s $filepath
2. ‘Данные’ => «Размер файла». -s $ filepath возвращает 0. ls -la возвращает 97403. Также вложение по-прежнему не работает.
3. Итак, $filepath неверен, будь то абсолютный или относительный путь. Также
use strict;
Ответ №1:
Вы shift
дважды вводите $filename
(2-я и 6-я строки), а переменная $filepath
не объявлена. Может быть здесь ошибка?
Комментарии:
1. ААаа… Должно быть, рано утром. Спасибо, что помогли мне!
2. Невозможно ли использовать абсолютный путь в «Path => $filepath»
3. При прикреплении файла xlsx мне также пришлось сначала закрыть Excel ::writer. Если я не закрыл его, абсолютный путь не работал.