Forum Webscript.Ru

Программирование => Perl => Тема начата: green_forest от 23 Марта 2005, 13:55:47

Название: модуль Mail::Sender. Помогите плз
Отправлено: 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";
}
Название: модуль Mail::Sender. Помогите плз
Отправлено: NeoNox от 23 Марта 2005, 14:11:18
За такие названия в следующий раз буду бить по рукам.
Не на блатную сходку пришел.

К вопросу,
filename не хочешь дописать в SendFile?
Название: модуль Mail::Sender. Помогите плз
Отправлено: green_forest от 23 Марта 2005, 14:36:08
Сори, вырвалось.

В этой строчке указывается filename:
disposition => \'attachment; filename="\'.$xls_file.\'"\',

Пробовал filename=*

То же самое.
Название: модуль Mail::Sender. Помогите плз
Отправлено: NeoNox от 23 Марта 2005, 16:38:16
Похоже нужно играться с кодировкой $xls_file.
Вот модуль для проверки кодировки(detect) строки $xls_file
http://www.cpan.org/modules/by-module/namespace/AMICHAUER/cyrillic-2.09.tar.gz
Название: модуль Mail::Sender. Помогите плз
Отправлено: green_forest от 23 Марта 2005, 17:14:20
спасибо за ответы.

Мысль есть. $xls_file содержит полный путь к файлу-вложению.
Может в строке disposition => \'attachment; filename="\'.$xls_file.\'"\'
указывать только название файла? Скорее всего так...
Название: модуль Mail::Sender. Помогите плз
Отправлено: green_forest от 23 Марта 2005, 17:20:38
Нет, $xls_file=\'Имя с пробелами в кодировке KOI8-U.xls\' без пути...
Название: модуль Mail::Sender. Помогите плз
Отправлено: NeoNox от 23 Марта 2005, 17:20:45
Я бы сказал что даже нужно.
Но врядли это решит проблему.
Название: модуль Mail::Sender. Помогите плз
Отправлено: NeoNox от 23 Марта 2005, 17:33:22
Попробуй определить в какой кодировке эти кракозяблы приходят.
Название: модуль Mail::Sender. Помогите плз
Отправлено: green_forest от 23 Марта 2005, 18:39:40
Приходят с названием в KOI8-U без перекодировки.
И Виндовс-клиент не может прочитать название файла.

А когда кодирую имя файла из KOI8-U -> CP1251, Виндовс-клиент все прекрасно читает.
Хоть само письмо в КОИ8
Так и должно быть?
Название: модуль Mail::Sender. Помогите плз
Отправлено: NeoNox от 23 Марта 2005, 18:41:21
Спроси у Билли. Такое часто бывает, просто пиши в 1251.
Название: модуль Mail::Sender. Помогите плз
Отправлено: green_forest от 23 Марта 2005, 18:42:50
Спасибо за помощь.

Придется все в 1251 наладить.