Отправка скриптом письма через внешний Smtp

Тема в разделе "Perl программирование", создана пользователем ˸, 25 май 2007.

  1. ˸

    ˸ Гость

    Народ, помогите! :)
    Такая беда - у моего хостера не работает sendmail и, как меня уже обрадовали, не будет...

    В инете находил кучу скриптов отсылки писем через SMTP, но такое чувство что люди забыли что такое аутентификация на SMTP!

    Дело в том что у меня, например в чате, юзеры не могут даже восстановить пароль на е-мэйл...
    Чат использую GTChat, модуль отправки через SMTP что с ним я прикрепляю к сообщению.

    Если кто знает, помогите со скриптом...
     

    Вложения:

    • SMTPModule.zip
      Размер файла:
      947 байт
      Просмотров:
      110
  2. ˸

    ˸ Гость

    Но, мои познания в перле не идеальны... мож кто поможет прикрутить авторизацию к модулю что я выложил?? буду оч благодарен!
     
  3. _serg_

    _serg_ Гость

    вчера еще хотел написать, но че-т не стал. сегодня так и быть скажу:
    обычно сендмейл не работает на тех айпишниках, которые находятся в черных списках
    пробей для начала айпишник своего сайта на наличие в спамбазах
    если он там есть, то на почту можеш не заморачиваться :rolleyes:
     
  4. ˸

    ˸ Гость

    нет, дело в том что сендмэйл именно отключен на серваке... Связывался со службой поддержки... там меня обрадовали что в ближайшее время ничё не предвидится... Вот я и ищу альтернативы, - даже элементарное восстановление пароля в чате не работает, а надо...

    так что нет чтоли кул-программеров которые могут помочь?
     
  5. garrymax

    garrymax Гость

    Первый вариант долго писать - в сети есть куча готовых примеров, которые соединяются по 25 порту и шлют все стандартные команды для конекта с почтовиком.

    Второй вариант - найти открытый релей сервер (списки в инете публикуют) и прописать его в коде ini_set("SMTP",$SMTP_NAME_SERVER);
     
  6. ˸

    ˸ Гость

    увы нет... мне нужно постоянно и надежно, через своё платное мыло...

    Так значит никто не поможет? :huh:
     
  7. garrymax

    garrymax Гость

    Это не совсем правильное понимание smtp протокола: Свое платное мыло - это место на сервере, где хранятся письма их можно забрать по 110 порту (протокол POP3). Пересылка письма, в простейшем случаи , создается соединение по 25 порту и отравитель шлет smtp-агенту текст HELO. Если контакт есть, то в ответ прийдет текст OK и так далее - можно даже ручками по команде telnet name@server.ru 25 отправлять письма.
    Если такой сервер есть на платном ящике, то можно использовать его в качестве транспортера, указав PHP адрес этого сервера. Пример тут
     
  8. ˸

    ˸ Гость

    2 garrymax:

    И опять вы меня не так поняли.... дело в том что на моём хостинге из неизвесных соображений отрубили sendmail и мне нужна помощь в таком вопросе - как отправить мне письмо со скрипта через внешний SMTP с АВТОРИЗАЦИЕЙ! Я прекрасно понимаю что надо скриптом подключиться к mail.server.ru по 25 порту, но ведь в тех примерах что вы мне показали так и нет и намека на авторизацию! а где же отсылка логина, пароля??? Вот что я прошу... т.к. я не в совершенстве знаю перл, я выложил модуль отправки через SMTP моего чата, но там тоже без авторизации..., мне нужна помощь по доработки его для авторизации на SMTP сервере.
    :)
     
  9. garrymax

    garrymax Гость

    Это я по жаре не правильно описал и вообще, привел пример на ПХП - мои сорри:

    В примере, хоть и на ПХП, работа с сокетом - это не требует авторизации и обращения к smtp-агенту, а напрямую связывается с сервером получателя письма. Если аргумент "черного списка", о котором упоминал Лёхич, не используется фильтром хоста приемника (кому отсылаем), то указанного скрипта достаточно - он работает напрямую с сокетами и sendmail ему не нужен (этот скрипт сам себе sendmail).

    По поводу Перловского скрипта - принцип аналогичен, а пример работы с сокетами есть в одной из тем этого форума, только поменять порт на 25 и отсылаемый текст взять из примера, который я ранее указал. Правда прийдется добавлять строки "рукопожатия" в синтаксе SMTP-агентов - если интересно, то поищи в сети статьи по чтению почты при помощи telnet, там и про то, как логины и пароли указывать, а тут описывать долго.

    Еще есть вариант использовать модуль Mail::Mailer. Если и его не установил хостер, то копируем его в cgi-директорию - от куда запускаем скрипт (у меня так прокатывало с другими модулями). Этот пример почти не мой :)
    Код (Text):
    use Mail::Mailer;

    ########## заполняем ###############
    $from_address ="сюда свое мыло";
    $to_address ="сюда мыло получателя";
    $title ="сюда тему письма";
    $body ="сюда текст сообщение";
    ################################

    $mailer = Mail::Mailer->new(); # если написать new("sendmail"), то слать будет sendmail, иначе сам модуль
    $mailer = open({ From => $from_address, To => $to_address, Subject => $title }) or die "Не могу открыть: $!";
    print $mailer $body;
    mailer->close();
    Этому скрипту не нужен sendmail, но если у хостера перекрыт 25 порт, то и он не поможет.

    На счет отсылки непосредственно со своего сервера, где почтовый ящик: не рентабельно - те же действия, но с участием еще одного хоста. Но если приспичит, то есть станартный модуль Net::SMTP, в котором можно задать логин и пароль (у меня нет Mail::Mailer, но думаю там тоже есть такая возможность). Пример описан в помощи (для UNIX команда man Net::SMTP, или поищи пример в сети, например на страницах MANов на opennet). Кстати, он аналогичен модулю Mail::Mailer по работе с сокетами и также отсылает письма.
     
Загрузка...
Похожие Темы - Отправка скриптом письма
  1. k85
    Ответов:
    4
    Просмотров:
    92
  2. k85
    Ответов:
    10
    Просмотров:
    882
  3. motogarri
    Ответов:
    4
    Просмотров:
    794
  4. JohnLemon
    Ответов:
    18
    Просмотров:
    1.561
  5. erdi
    Ответов:
    3
    Просмотров:
    1.380

Поделиться этой страницей