Проблема с smtp (phpmailer)

Главные вкладки

Аватар пользователя XmasterX XmasterX 9 октября 2008 в 20:14

Добрый день всем. Только остановил свой выбор на друпале и сразу наткнулся косяк Smile

Хостер отключил sendmail и порекомендовал пользоваться рассылкой писем используя smtp аутентификацию. Установил модуль phpmailer и оказалось что он не работает. При включенном debugging выдает вот что: SMTP -> FROM SERVER: SMTP -> FROM SERVER: SMTP -> ERROR: HELO not accepted from server: SMTP -> FROM SERVER: SMTP -> ERROR: EHLO not accepted from server: SMTP -> ERROR: AUTH not accepted from server: SMTP -> FROM SERVER: SMTP -> ERROR: RSET failed:
Начал экспериментировать. Создал поддомен, закинул в него сам phpmailer и smtp-класс от него. в качестве index.php взял пример от phpmailer'a для утентификации на гуглмэйле. воопщем мучался долго Smile выяснил что засада наступает в тот моемнт когда дело до ходит до helo (точнее ehlo) эта команда почему-то не проходит.
Еще хостер кагда рекомендовал stmp дал ссылку на пример: http://www.codewalkers.com/c/a/Email-Code/Smtp-Auth-Email-Script/

этот скрипт все-таки работает. хотя вроде все тоже самое что и в phpmailer'e. ну, за исключением того что mailer сделан с классами ...

могу выложить скрипт который все-таки работает...

з.ы. сайт типа сделал, а пользователи зарегистрироваться не могут Sad

Комментарии

Аватар пользователя XmasterX XmasterX 9 октября 2008 в 20:19

забыл добавить: написал об этом хостеру, он пару дней помолчал (не знаю делали что или нет) и выдал ответ: проблем на сервере с соединением к порту 25 через localhost нету, найти причину почему Ваш скрипт не соединяется с localhost не удалось, скорее всего требуется дополнительная настройка Вашего скрипта.

Аватар пользователя XmasterX XmasterX 22 октября 2008 в 21:23

нашел в чем проблема, точнее это было и раньше ноя не обращал внимания: функции fget которые должны возвращать ответ smtp сервера (который потом обрабатывается на предмет ошибок) почему-то ничего не возвращают и висят до истечения таймаута.
написал хостеру - второй день молчит...
подожду немного, потом опять буду его терроризировать Smile

может кто сталкивался с такой проблемой?

Аватар пользователя adnull adnull 23 октября 2008 в 20:46

А другой смтп сервер попробовать? Что за хостер, кстати? Ибо обычно наоборот, не дают доступ к smtp что бы спам не слали, а заставляют через sendmail. Эффект тот-же, а головной боли меньше.
Предположу, что fgets не может дождаться конца ответа, либо не воспринимает, что ответ уже пришел весь.

Аватар пользователя XmasterX XmasterX 28 октября 2008 в 12:15

fgets не то чтобы конца ответа не дожидалась а просто ничего не возвращала, похоже что она пыталась вернуть но не получалось.

другой smtp сервер тоже не получалось использовать, все было так же - тишина до таймаута и как следствие ничего не работает, т.к. все скрипты а-ля phpmailer разбирают ответ сервера на предмет прошла авторизация или нет по возвращаемым кодам.

вообщем хостер, наверно помучался, ничего не получилось
и перенес на другой сервер, там все работает нормально.

уж не знаю что было Smile

Аватар пользователя Izem@drupal.org Izem@drupal.org 29 октября 2008 в 0:35

Ага, у меня тоже самое... Думал, что не так что-то настроено - долго провозился. Проблема возникает и на Лидерхосте, и на Мс-Хосте... Попробую попросить админов, может, чем-то помогут...

Уважаемые гуры, а вообще, в чём проблема? Помогите, пжл, разобраться.

PS: XmasterX, а кто хостер у сайта?

Аватар пользователя Izem@drupal.org Izem@drupal.org 10 ноября 2015 в 11:45

--- !!! ВОПРОС РЕШЁН !!! --- (Надо было мануалы внимательно читать Smile

В общем, так. Для PHP5 нужен PHPMailer версии 2.2.x. На сегодняшний день последняя версия - 2.2.1.
Скачать можно отсюда: http://sourceforge.net/project/showfiles.php?group_id=26031&package_id=2...
Файлы PHPMailer-а надо залить в каталог /sites/all/modules/smtp/phpmailer/
Затем крайне рекомендуется проапдейтить файл class.phpmailer.php патчем для v2.2.1, который лежит в корне дистрибутива модуля SMTP. Если Вам неохота возиться, то уже проадейченный файл v2.2.1 я прикрепил к этому сообщению.

И на Лидерхосте, и на Мс-Хосте сразу же всё заработало!

Аватар пользователя Izem Izem 25 ноября 2008 в 1:11

М-дааа... Не всё так просто оказалось... В какой-то момент (я пропустил, в какой именно), скорее всего, после обновления версии Drupal до 6.6, после отправки сообщения через форму контактов, система стала выпадать в белый экран. Причём, не смотря на это, письма прекрасно уходят и нормально доходят до адресата...

В журнале появляется запись:

Quote:
Cannot modify header information - headers already sent by (output started at ***/sites/all/modules/smtp/phpmailer/class.smtp.php:1095) в файле ***/includes/common.inc в строке 319.

На всякий случай, строка 319:

header('Location: '. $url, TRUE, $http_response_code);

В интернете проблема известна и много раз обсуждалась, о ней пишут следующее:

Quote:
1. Найдите функцию header() в файле вызывающую ошибку. Содержимое выдается перед ее вызовом. Переместите вызов до вывода основной части.
2. Проверьте отсутствие пробелов до тега начала и конца php. Наличие пустой строки до <?php начального тега может обрабатывается некорректно при вызове php, это будет аналогично выводу echo "". Это довольно частая проблема.

Однако, есть одна очень интересная вещь: в панели настройки модуля SMTP есть возможность отсылки письма через SMTP для проверки работы модуля. Так вот, при отправке письма из панели настройки письмо нормально уходит, но система в белый экран НЕ ВЫПАДАЕТ!!!

Умные мысли отсутствуют... Sad Уважаемые гуры! Подскажите что-нибудь, пожалуйста!

PS: Проблема проявилась на трёх сайтах на двух разных хостерах. Везде Друпал 6.6, PHPMailer пробовал и 2.2.1, и 2.3. Файл class.phpmailer.php пробовал и с апдейтом и без апдейта.

Аватар пользователя kosilko kosilko 25 ноября 2008 в 1:27

была проблема с белым экраном, когда в конце файла template.php я по привычке в конце написал закрыающий тэг "?>". Причем, ошибок - нигде и никаких не было. Причем, белочка появлялась строго при каких - либо сабмитах. Пол дня убил, чтоб найти в чем косяк. Мне так думается, что такие дела касаются и других файлов друпала, где-то я видел предупреждения о закрывающих тэгах. А в СМТП модуле используется сторонний класс phpmailer, в теле которого автор добросовестно прописал энтот тэг. Может быть причина в этом.

Аватар пользователя kosilko kosilko 25 ноября 2008 в 1:32

хм.. блин, я сейчас посмотрел сорсы этого класса, там в конце, ну фиг с ним с тэгом закрывающим, но там после него идет перенос... Во всех трех файлах.

Аватар пользователя Izem Izem 27 ноября 2008 в 20:49

Да уж... В 2.2.1 точно есть перенос. Sad Правда, в 2.3 его, всё-таки, убрали.

На всякий случай убрал ещё из этих файлов и закрывающий тэг. Всё равно не помогает. Sad

Братья-друпалеры! Помогите, пжл, чем сможете. Smile На самом деле, надо. Думаю, не только мне.

PS: kosilko, спасибо за ответ!

Аватар пользователя teamfighter teamfighter 17 сентября 2009 в 0:36

Решил проблему с белым экраном. Всего то и надо было, что установить модуль посвежее. Не знаю, может неактуально, но отписываюсь откуда его надо было качать:

http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6... - качаем 5-ю версию phpmailer,

распаковываем в /sites/all/modules/smtp/phpmailer

ничего не патчим.

У меня все заработало.

Аватар пользователя kogor-web kogor-web 30 ноября 2009 в 12:12

Здравствуйте.

Проблема с отправкой почты через smtp.gmail.com

Использую Drupal 6.14
Модуль SMTP Authentication Support -6.x-1.0-beta3
PHPMailer v5.1

В настройках модуля указываю:

SMTP server: smtp.gmail.com
SMTP backup server:
SMTP port: 465
Use encryption protocol: SSL

Username: xxxx@xxxxx //ящик зарегиcтрирован на Gmail
Password: *********

При отправке писем получаю ошибку:

SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Ошибка SMTP: не удается подключиться к серверу SMTP.

Кто сталкивался, подскажите пожалуйста в чем причина, как исправить?

Аватар пользователя DesweR DesweR 9 июля 2010 в 11:49

Такая же ошибка:
"Ошибка SMTP: не удается подключиться к серверу SMTP"

Drupal 6.15
PHP 5.2.6-1+lenny8
Модуль smtp 6.x-1.x-dev
PHPMailer 5.1

Хостинг - infobox.ru
SMTP сервер - smtp.bk.ru

Ничего не посоветуете?

Аватар пользователя TorXak TorXak 30 ноября 2011 в 15:10

Подобная ошибка: SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Ошибка SMTP: не удается подключиться к серверу SMTP.

Использую Drupal 6.22
Модуль smtp-6.x-1.x-dev (и SMTP Authentication Support -6.x-1.0-beta5 тоже пробовал)
PHPMailer v5.1

хостер TimeWeb, хорошо расписано как настроить почту. открыт 25 порт - проверял на встроенной в Ubuntu почте: настройки smtp и pop3 вбивал. все работает. И почту отправлял со своего компа от "имени домена" и слал обратно с mail.ru на почту домена.

Но при таких же настройках не хочет работать отправка через сайт. Сначала думал что намудрил с модулями разнообразными и мешают работать. Заново устанавливал Drupal и первым делом модуль smtp включал - так и не заработало! (даже на локальной машине не захотела).
Пробовал и другие версии smtp, пропатчивал. Там же пробовал и настройки ручками вбивать... ничего не помогло

Уже не знаю что делать!? Помогите, прошу.

P.S. сейчас пробовал Drupal 7 поставить... все идет нормально, на последнем пункте где надо указать почтовый ящик - вбиваю существующий на mail.ru ... дальше пишет "Unable to send e-mail. Contact the site administrator if the problem persists.Congratulations, you installed Drupal! Visit your new site." Это замечательно что установился, но почта заглохла. Sad

P.S.v2 (спустя 20 минут) поставил на Drupal7 smtp-7.x-1.0-beta1 + PHPMailer v5.1 с теми же настройками что и в Drupal6.22 - РАБОТАЕТ! Что за глюк тогда в 6-той?!?!?