Уважаемые специалисты!
Друпал сайт стоит на хостинге NIC.ru
Уже несколько дней не могу решить проблему отправку e-mail с сайта на хосте через mail.nic.ru.
Техподдержка хостинга отказала в консультации т.к. по работе на DRUPAL - не их ответственность.
Перечитал все форумы,попробовал опубликованные советы, а именно:
1. Пробовал отправку писем непосредственно из под DRUPAL.
Поправил файл mail.inc
( // The email might not be sent properly if the subject field
// contains newline characters. see http://drupal.org/node/84883.
str_replace("\n", ' ', mime_header_encode($message['subject'])),
// Note: e-mail uses CRLF for line-endings, but PHP's API requires LF.
// They will appear correctly in the actual e-mail that is sent.
str_replace("\r", '', $message['body']), )
В include.inc, the mime_header_encode function, поправил $chunk_size = 400;
Имеем:
warning: mail() [function.mail]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i ' in /home/hostname/saitname.ru/docs/includes/mail.inc on line 202.
Не удается отправить почту. Пожалуйста, свяжитесь с администратором сайта, если эта проблема сохраняется.
2. Установил SMTP-6.x-1.0-beta5 + phpMailer v2.2.1 c патчем class.phpmailer.zip
Я настроил SMTP на имя сервера: mail.nic.ru
Порт указал 25-й ,также (2525) Логин - имя почтового ящика, Пароль.
Использовать зашифрованный протокол: нет
этот ящик добавил в списки доверенных получателей/отправителей на mail.nic.ru.
Имеем:
Порт 25
SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "220 fcgp03.nicmail.ru
ESMTP CommuniGate Pro 5.2.3. " SMTP -> get_lines(): $data is "220 fcgp03.nicmail.ru
ESMTP CommuniGate Pro 5.2.3. " SMTP -> FROM SERVER: 220 fcgp03.nicmail.ru
ESMTP CommuniGate Pro 5.2.3. SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "250-fcgp03.nicmail.ru your name is not www.saitname.ru
" SMTP -> get_lines(): $data is "250-fcgp03.nicmail.ru your name is not www.saitname.ru
" SMTP -> get_lines(): $data was "250-fcgp03.nicmail.ru your name is not www.saitname.ru
" SMTP -> get_lines(): $str is "250-DSN " SMTP -> get_lines(): $data is "250-fcgp03.nicmail.ru
your name is not www.saitname.ru
Порт 2525
SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "220 fcgp04.nicmail.ru ESMTP CommuniGate Pro 5.2.3. " SMTP -> get_lines(): $data is "220 fcgp04.nicmail.ru ESMTP CommuniGate Pro 5.2.3. " SMTP -> FROM SERVER: 220 fcgp04.nicmail.ru ESMTP CommuniGate Pro 5.2.3. SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "250-fcgp04.nicmail.ru .....
Порт 80
SMTP -> FROM SERVER: SMTP -> get_lines(): $data was "" SMTP -> get_lines(): $str is "HTTP/1.0 400 Bad Request " .....
Опыта в отладке на этом уровне и программировании на php - нет.
НУЖНА ВАША помощь!
Спасибо всем.
Комментарии
Во-первых, верните стандартный код ядра.
Тем более не копайте ядре пока.
У меня один из сайтов на этом хостинге. Какой из тарифов взяли? Посмотрите в админке использование оперативной памяти в момент отправки письма. Мне техподдержка ответила, что эта ошибка возникает из-за нехватки оперативы.
Если есть возможность и сайт планируется с нормальной посещаемостью, сменил бы хостинг...
Если увидите, что ошибка возникает только в пики использования оперативной памяти, то:
-отключите перестройку тем
-включите кеш из коробки
По модулю smtp. У меня нормально работает даже на локалхосте, где почтового демона нет. www.sitename.ru вы специально заменили? Или это именно то, что выдает отладка? Попробуйте любой другой внешний SMTP-сервер для теста, хотябы тот, на котором у вас уже есть почта.
Все решается без правки ядра. Работает третий год.
а как решается то отпишите
Да уж... было бы неплохо, узнать поподробнее как оно все же решается?
решается отключением ненужных модулей в админке или включением кеширования
а так же можно поменять тариф на более мощный
короче все делао в памяти когда ее нехватает то вываливается эта ошибка
Какая нафиг память?!
SMTP -> get_lines(): $str is "250-fcgp03.nicmail.ru your name is not www.saitname.ru
Вы пытаетесь отправить письмо с from отличным от вашего почтового ящика, в который вы логинитесь.
Создайте нужный ящик, или измените адрес, от которого посылаете письмо.
На вашем сервере, вообще говоря, MTA вообще не нужен, используйте phpmailer, работайте напрямую с внешним SMTP сервером.