Forum Webscript.Ru
Программирование => Perl => Тема начата: green_forest от 23 Марта 2005, 13:55:47
-
Пытаюсь сделать рассылку письма с вложением с линукс машины.
Все как-бы нормально, Виндовс-клиенты корректно видят письмо, тему. Но вложение приходит с именем крякозябриками.
Это нормально? Мне для рассылки для Видовс-машин надо перекодировать название вложения? Как-то это через... получается.
if ($mail) {
if ($email) {
print "$xls_file на $email... ";
my $sender = new Mail::Sender {
smtp => \'smtp.mail.server\',
from => \'sender@mail.server\',
replyto => \'sender@mail.server\',
on_errors => \'code\',
charset => \'KOI8-U\',
};
die "Mail::Sender: $Mail::Sender::Error" unless ref $sender;
ref $sender->OpenMultipart({
to => $email,
subject => "Вложение",
charset => \'KOI8-U\',
encoding => \'quoted-printable\',
})
or die "$sender->{\'error_msg\'}";
$sender->Body(\'KOI8-U\', \'quoted-printable\', \'text/plain\');
$sender->SendEnc(<Текст письма
EOS
$sender->SendFile({
description => "Microsoft Excel file $xls_file",
ctype => \'application/vnd.ms-excel\',
encoding => \'Base64\',
disposition => \'attachment; filename="\'.$xls_file.\'"\',
file => $xls_file
});
$sender->Close
or die "$sender->{\'error_msg\'}";
print "OK\\n";
}
-
За такие названия в следующий раз буду бить по рукам.
Не на блатную сходку пришел.
К вопросу,
filename не хочешь дописать в SendFile?
-
Сори, вырвалось.
В этой строчке указывается filename:
disposition => \'attachment; filename="\'.$xls_file.\'"\',
Пробовал filename=*
То же самое.
-
Похоже нужно играться с кодировкой $xls_file.
Вот модуль для проверки кодировки(detect) строки $xls_file
http://www.cpan.org/modules/by-module/namespace/AMICHAUER/cyrillic-2.09.tar.gz
-
спасибо за ответы.
Мысль есть. $xls_file содержит полный путь к файлу-вложению.
Может в строке disposition => \'attachment; filename="\'.$xls_file.\'"\'
указывать только название файла? Скорее всего так...
-
Нет, $xls_file=\'Имя с пробелами в кодировке KOI8-U.xls\' без пути...
-
Я бы сказал что даже нужно.
Но врядли это решит проблему.
-
Попробуй определить в какой кодировке эти кракозяблы приходят.
-
Приходят с названием в KOI8-U без перекодировки.
И Виндовс-клиент не может прочитать название файла.
А когда кодирую имя файла из KOI8-U -> CP1251, Виндовс-клиент все прекрасно читает.
Хоть само письмо в КОИ8
Так и должно быть?
-
Спроси у Билли. Такое часто бывает, просто пиши в 1251.
-
Спасибо за помощь.
Придется все в 1251 наладить.