За последние 24 часа нас посетили 17107 программистов и 1835 роботов. Сейчас ищут 1718 программистов ...

Проблемы с отправкой веб-формы на e-mail

Тема в разделе "Работа с почтой", создана пользователем mrrc, 21 дек 2007.

  1. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Есть веб-форма для регистрации, через которую пользователи должны отправлять свои данные на прописанный в скрипте e-mail, но этого не происходит. По заявлениям создателя скрипта, это должно происходить самими средствами php, т.е. в php.ini прописывается:
    Код (Text):
    1. [mail function]
    2. ; For Win32 only.
    3. SMTP = IP_MAIL_SERVER
    4. smtp_port = 25
    5.  
    6. ; For Win32 only.
    7. sendmail_from = forum@domain,ru
    8.  
    9. ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    10. ;sendmail_path =
    Но увы, скрипт успешно отрабатывается, выдается подтверждение об успешной отправке, но на деле ничего никуда не шлется, ни в логах апача нет ничего подозрительного, ни в логах почтового сервера, который прописан для отправки, нет ни малейшего намека на попытки что-либо отправить с веб-сервера.

    Кусок из скрипта, отвечающий за отправку сообщения:
    Код (Text):
    1. /* To send HTML mail, you can set the Content-type header. */
    2.             $headers  = "MIME-Version: 1.0\r\n";
    3.             $headers .= "Content-type: text/html; charset=windows-1251\r\n";
    4.            
    5.             /* additional headers */
    6.             $headers .= "From: Registration <forum@domain.ru>\r\n";
    7.             /* and now mail it */
    8.             $to  = "admin@domain.ru";
    9.             mail($to, $subject, $message, $headers);
    10.                 $Smarty->assign("complete", true);
    FreeBSD 6.2-RELEASE, Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.2 with Suhosin-Patch
     
  2. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    ОЧЕНЬ смешно )))
     
  3. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Что именно, в конфигах ральные данные и синтаксис верный.
     
  4. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    да?? А где вы ведели разделение домена через зЯпятую? :)))
     
  5. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Слушайте, у вас по существу есть что сказать или нет?
    Это опечатка здесь уже в посте сделана, когда реальные данные затирались.
     
  6. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    А вы сам хостер???
    Зачем Вам настраивать php.ini????
    У меня отправляется просто через mail(); Без всяких настроек..
     
  7. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Имеется свой веб-сервер, где все и располагается.
    А у меня не отправляется ни с настойками и без них, поэтому и спрашиваю, что может быть еще.
    Если не настраивать php, скрипт понятия не будет иметь через какой почтовый сервер отправлять сообщение, как я понимаю, т.к. в нем самом нигде не прописывется куда ему отсылать данные.

    На этой же машине работает форум, который замечательно все отсылает используя четко прописанный в свих настройках адрес сервер и порт для подключения к постовому серверу.
     
  8. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Nemo, полегче, он не просто сам хостер, он владелец domain.ru! )))

    Афтару:
    Код (Text):
    1.  
    2. $to  = "admin@domain.ru";
    эта строчка говорит что твои письма уходят по адресу: admin@domain.ru
    Но ты не волнуйся, их никто не читает т.к. они скорее всего не доходят!
    см. тут: http://ru2.php.net/mail

    P.S.
    Код (Text):
    1. /* To send HTML mail, you can set the Content-type header. */
    2.             $headers  = "MIME-Version: 1.0\r\n";
    3.             $headers .= "Content-type: text/html; charset=windows-1251\r\n";
    4.            
    5.             /* additional headers */
    6.             $headers .= "From: Registration <forum@domain.ru>\r\n";
    7.             /* and now mail it */
    8.             $to  = "admin@domain.ru";
    9.             mail($to, $subject, $message, $headers);
    10.                 $Smarty->assign("complete", true);
    Ты никогда не задумывался зачем написана вся эта лабуда, если достаточно в PHP.ini прописать SMTP-сервер?
    ... Задумайся! Узнаешь много интересного! (хотя там и думать не надо, достаточно один раз прочитать)

    P.P.S
    При такой отправке процентов 30 серверов отправит твою рассылку в спам!
     
  9. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Либо никто не вчитывается в написанное, либо пытаетесь поймать меня на моем непонимании.
    В третий раз говорю, что все адреса и данные реальные прописаны, domain.ru приведен в посте как пример.

    Чтобы они хотя бы пробовали уходить, они должны вначале попасть на прописанный в php.ini почтовый сервер, чего не происходит в принципе, обращений с адреса веб-сервера в логах почтового нет.
     
  10. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Вы либо не выспались, либо ...
     
  11. Anonymous

    Anonymous Guest

    Они не вчитываются. Не обращайте внимания.
    В случае системы под никсами, нужно использовать обертку в виде sendmail для обычных почтовых демонов, напрямую работать он с ними не умеет . Тут надо смотреть настройки, а реальный конфиг вы не показывали, и я не знаю как вы настроили.
     
  12. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Вот Вы упертый!

    1. Нужно поднять SMTP сервер,
    2. в PHP.ini прописать только имя сервера и порт ! И больше ничего!

    Все остальное через функцию mail!

    Есть и другой способ отправки в обход mail - тогда уже все гораздо сложнее!
     
  13. Anonymous

    Anonymous Guest

    S.t.A.M., ты не прав.
    С большой вероятностью, он не использует mail для этого, а подключается напрямую сокетами. Это чуть менее быстро, но тоже не плохо. Если такой способ вас устроил бы, то вам надо брать класс PEAR::Mail и его наследников в репозитории, и пользоваться им.
     
  14. Anonymous

    Anonymous Guest

    mrrc, кстати, большинство почтовых серверов ставят сами обертку для sendmail - в частности exim и postfix точно делают у меня под дебианом.
     
  15. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Ну, ладно, с тобой не спорю )))
     
  16. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    S.t.A.M.
    Я не упертый, просто вы невнимательны и ищите очевидные простые пути решения проблемы :)
    А если я не хочу стартовать локальный почтовый сервер на этой машине за ненадобностью, поэтому прописываю IP-адрес рядом стоящего корпоративного почтового сервера для отправки на него сообщений.

    Под "оберткой" как раз и понимается локально запущенные процессы sendmail-а, которых у меня ес-но не запущено?
     
  17. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Тогда очевидно только сокетами...
     
  18. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    А чего проще расковырять форум, посмотреть как там ...и содрать от туда!
    (сори - изучить, понять, и написать так же, но свое!)))
     
  19. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Форум PunBB, может кто нужный кусок вытащит оттуда? Тут еще и прилепить выдранное в мой скрипт правильно надо :)
     
  20. Anonymous

    Anonymous Guest

    Да почти. У меня запускается /var/postfix/bin/sendmail (поставляется с postfix вместе) что указано в директиве sendmail_path, обертка «понимает» параметры sendmail и скармливает задания демону postfix.
    Если у вас почтовый сервер на другой машине, думаю лучше будет все таки
     
  21. mrrc

    mrrc Активный пользователь

    С нами с:
    23 май 2007
    Сообщения:
    20
    Симпатии:
    0
    Горбунов Олег

    Ясно, но сам то я класс PEAR::Mail не осилю, не мой профиль, поэтому передам информацию писавшему скрипт или тогда уже придется стартовать все же локальный sendmail и слать все через него на основной корпоративный сервер, будет ли доставляться - еще не пробовал.