Здравствуйте, подскажите пож-та, как отправить письмо с помощью Net::SMTP_auth.
Точнее сама отправка работает, но проблемы с кириллицей.
Кусок кода у меня такой:
Массив @send типа этого (логин@rambler.ru,smtp.rambler.ru,"тут пароль")
$smtp = Net::SMTP_auth->new($send[1],Debug => 0);
$smtp->auth('LOGIN', $send[0], $send[2]);
$smtp->mail($send[0]);
$smtp->to($kuda); - кому отправляем
$smtp->data(); # Start the mail
$smtp->datasend("Content-Type: 'text/plain; charset=windows-1251'\n");
$smtp->datasend("To: $kuda\n");
$smtp->datasend("From: $send[0]\n");
$subj=encode_base64("Тема письма");
chomp($subj);
$subj = "=?windows-1251?B?".$subj."?=";
$smtp->datasend("Subject: $subj");
$smtp->datasend("\n");
#$smtp->datasend(@message);
$smtp->dataend(); # Finish sending the mail
if ($smtp->dataend()){
print TMP "E-mail from $send[0] to $kuda sent\t\t\tOK!\n";
print "E-mail from $send[0] to $kuda sent\t\t\tOK!\n";
}
else{
print TMP "E-mail from $send[0] to $kuda sent\t\t\tFAIL!\n";
print "E-mail from $send[0] to $kuda sent\t\t\tFAIL!\n";
};
$smtp->quit;
В общем отправляет, даже тема нормально читается, но вот тела нет
Что не так, не подскажете?
Так у вас закомментарен кусок посылающий само тело:
$smtp->datasend("\n");
#$smtp->datasend(@message);
$smtp->dataend(); # Finish sending the mailНу и массив надо бы пребразовать в строку:
$smtp->datasend("\n");
$smtp->datasend(join("\n", @message));
$smtp->dataend(); # Finish sending the mail
Нет вы меня не поняли!
Кусок я поставил правильный, закомментировал только потому, что тестировал разные приемы с кириллицей.
Англоязычный текст уходит и в таком виде
$smtp->datasend(@message);
и в таком
$smtp->datasend("asdjklfhaskld\njahsdfsdhj\n");
Проблема как раз с кириллицей.
Может есть другие способы для отправки сообщений именно с SMTP авторизацией.
Пробовал через MAIL::SEnder - но тоже ничего не вышло.
с кодировкой вообще жесть какая то
>[оверквотинг удален]
> Кусок я поставил правильный, закомментировал только потому, что тестировал разные приемы
> с кириллицей.
> Англоязычный текст уходит и в таком виде
> $smtp->datasend(@message);
> и в таком
> $smtp->datasend("asdjklfhaskld\njahsdfsdhj\n");
> Проблема как раз с кириллицей.
> Может есть другие способы для отправки сообщений именно с SMTP авторизацией.
> Пробовал через MAIL::SEnder - но тоже ничего не вышло.
> с кодировкой вообще жесть какая тоЗакодируйте тело письма с кирилицей в Base64 и будет вам счастье. в хедере только не забудьте указать кодировку письма.