За последние 24 часа нас посетили 15125 программистов и 1753 робота. Сейчас ищут 1454 программиста ...

не работает функция mail() на новом хостинге для формы

Тема в разделе "Работа с почтой", создана пользователем alexanderkarpov, 22 окт 2011.

  1. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Всем привет!
    Перенес сайт на новый хостинг и тут перестала работать форма обратной связи. Не могу разобраться в чем дело.
    Вот код
    PHP:
    1. <?php
    2. //Если форма отправлена
    3. if(isset($_POST['submit'])) {
    4.  
    5.     //Проверка Поля ИМЯ
    6.     if(trim($_POST['contactname']) == '') {
    7.         $hasError = true;
    8.     } else {
    9.         $name = trim($_POST['contactname']);
    10.     }
    11.  
    12.     //Проверка поля ТЕМА
    13.     if(trim($_POST['subject']) == '') {
    14.         $hasError = true;
    15.     } else {
    16.         $subject = trim($_POST['subject']);
    17.     }
    18.  
    19.     //Проверка правильности ввода EMAIL
    20.     if(trim($_POST['email']) == '')  {
    21.         $hasError = true;
    22.     } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
    23.         $hasError = true;
    24.     } else {
    25.         $email = trim($_POST['email']);
    26.     }
    27.  
    28.     //Проверка наличия ТЕКСТА сообщения
    29.     if(trim($_POST['message']) == '') {
    30.         $hasError = true;
    31.     } else {
    32.         if(function_exists('stripslashes')) {
    33.             $comments = stripslashes(trim($_POST['message']));
    34.         } else {
    35.             $comments = trim($_POST['message']);
    36.         }
    37.     }
    38.  
    39.     //Если ошибок нет, отправить email
    40.     if(!isset($hasError)) {
    41.         $emailTo = [email='mail@bk.ru]'mail@bk.ru[/email]'; //Сюда введите Ваш email
    42.         $body = "Name: $name \n\nEmail: $email \n\nSubject: $subject \n\nComments:\n $comments";
    43.         $headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
    44.  
    45.         mail($emailTo, $subject, $body, $headers);
    46.         $emailSent = true;
    47.     }
    48. }
    49. ?>
    Вот информация с info.php

    mail.force_extra_parameters no value no value
    sendmail_from no value no value
    sendmail_path /usr/sbin/sendmail -t -i -f mail@mail.ru /usr/sbin/sendmail -t -i -f mail@mail.ru

    Делал проверки с помощью кода

    PHP:
    1. <?php
    2. if(!mail("мой маил", "моё письмо", "моё сообщение"))
    3. echo 'не пашет :(';
    4. ?>
    И все приходит, но с формы не работает. Подскажите, это моя проблема или хостинга? если моя, то как её решить?
     
  2. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    до сих пор не справился! давай те, помогите!!!
     
  3. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    может проблема как раз в этом?
     
  4. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Gromo, возможно и в этом. В данный момент изучаю как менять php.ini на сервере
     
  5. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Поменял также настройки на сервере
    sendmail_from me@localhost.com me@localhost.com

    Но письма не приходят.
    Подсказывайте друзья!! В каком направлении нужно действовать?
     
  6. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    alexanderkarpov
    довольно сложно сказать что именно не работает. но php.ini изначально трогать не нужно без необходимости.
    я бы сделал тестовый скрипт по примеру и проверил работает ли вообще отправка писем с данного хостинга; а потом уже разбирался в коде своего проекта.
     
  7. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    Gromo, проверку я уже сделал.
    PHP:
    1. <?php
    2.  if(!mail("мой маил", "моё письмо", "моё сообщение"))
    3.  echo 'не пашет :(';
    4.  ?>
    Работает!!! письма приходят
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Сайт твой, наверно, отправляя письма указывает адрес отправителя. Хостер, возможно, не хочет отправлять письма с произвольным адресом отправителя. Попробуй указать там почту, которая относится к твоему домену. Создай на своём аккаунте на хостинге такой почтовый адрес, с которого пытаешься отправить письмо.
     
  9. alexanderkarpov

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

    С нами с:
    23 дек 2009
    Сообщения:
    35
    Симпатии:
    0
    sobachnik, попробовал, но письма не приходят!

    Возможно мне нужно начать с самого начала.
    Начну писать функцию mail(), т.к. она работает затем возможно ошибка найдется.
     
  10. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    именно так