Perl & MIME :: Lite - Почему мои вложения .txt пустые? - PullRequest
1 голос
/ 11 февраля 2011

Я уже давно пользуюсь MIME :: Lite , и до сих пор у меня не было проблем.

Я пытаюсь прикрепить файл .txt, но в файле (после отправки) нет содержимого.

Я знаю, что в файле есть что-то, потому что я создаю файл .txt в том же сценарии. Я знаю, где находится файл, и могу видеть его содержимое, но когда я говорю MIME::Lite присоединить файл .txt, приходит электронное письмо только с именем файла и размером всего 64 байта.

Вот код для MIME::Lite части моего скрипта:

$msg = new MIME::Lite(From => $from,To => $to,Subject => $subject,Data => "Data",Type => "multipart/mixed",); 
$msg->attach(Type => 'TEXT', Data => @message);
$msg->attach(Type => 'TEXT', Path => $stat_file);
$msg->send();

Где $stat_file = /in/some/dir/cheese/txt/somefile.txt

Все отлично работает, кроме 3-й строки. Он правильно находит и прикрепляет файл, на который я указываю, но когда он попадает в мою электронную почту, это пустой .txt файл размером 64 байта.

Я пробовал несколько вариантов каждой из первых 3 строк этого кода, но не знаю, что мне не хватает.

Кто-нибудь видит причину, по которой этот скрипт будет работать как объяснено?

1 Ответ

9 голосов
/ 11 февраля 2011

Вы говорите, что создаете файл, на который указывает $stat_file в вашей программе, верно?Может быть, вы не закрыли дескриптор файла для этого файла, и, возможно, он не выгружается на диск?

...