The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Как отправить письмо с помощью Net::SMTP_auth, !*! qwer, 23-Мрт-11, 09:42  [смотреть все]
Здравствуйте, подскажите пож-та, как отправить письмо с помощью 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;
В общем отправляет, даже тема нормально читается, но вот тела нет
Что не так, не подскажете?
  • Как отправить письмо с помощью Net::SMTP_auth, !*! cryo, 15:00 , 23-Мрт-11 (1)
    Так у вас закомментарен кусок посылающий само тело:
        $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

    • Как отправить письмо с помощью Net::SMTP_auth, !*! qwer, 15:21 , 23-Мрт-11 (2)
      Нет вы меня не поняли!
      Кусок я поставил правильный, закомментировал только потому, что тестировал разные приемы с кириллицей.
      Англоязычный текст уходит и в таком виде
        $smtp->datasend(@message);
      и в таком
        $smtp->datasend("asdjklfhaskld\njahsdfsdhj\n");
      Проблема как раз с кириллицей.
      Может есть другие способы для отправки сообщений именно с SMTP авторизацией.
      Пробовал через MAIL::SEnder - но тоже ничего не вышло.
      с кодировкой вообще жесть какая то


      • Как отправить письмо с помощью Net::SMTP_auth, !*! NuINu, 20:42 , 25-Мрт-11 (3)
        >[оверквотинг удален]
        > Кусок я поставил правильный, закомментировал только потому, что тестировал разные приемы
        > с кириллицей.
        > Англоязычный текст уходит и в таком виде
        >   $smtp->datasend(@message);
        > и в таком
        >   $smtp->datasend("asdjklfhaskld\njahsdfsdhj\n");
        > Проблема как раз с кириллицей.
        > Может есть другие способы для отправки сообщений именно с SMTP авторизацией.
        > Пробовал через MAIL::SEnder - но тоже ничего не вышло.
        > с кодировкой вообще жесть какая то

        Закодируйте тело письма с кирилицей в Base64 и будет вам счастье. в хедере только не забудьте указать кодировку письма.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру