За последние 24 часа нас посетили 15067 программистов и 1760 роботов. Сейчас ищут 1575 программистов ...

не понятно работает mail()

Тема в разделе "Работа с почтой", создана пользователем zevilz, 6 июн 2012.

  1. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    На сайте на многих страницах реализована отправка сообщений через mail(). На локальном сервере отправка работает отлично. Скинул сайт на хостинг. Сообщения не отправляются. Но служба поддержки утверждает, что отправляется и даже написали сколько сообщений было отправлено. А затем залили мне вот такой скрипт для теста mail():
    Код (Text):
    1. <?
    2. if(mail($to, $subject, $message,$headers))
    3. {echo "status=ok";}
    4. else {echo "status=error"; }
    5. ?>
    при переходе на страницу скрипта пишет "status=ok"

    Приписал к скрипту свой email
    Код (Text):
    1. <?
    2. if(mail("zevilz13@yandex.ru", $subject, $message,$headers))
    3. {echo "status=ok";}
    4. else {echo "status=error"; }
    5. ?>
    Письмо пришло. Затем я написал свой скрипт:
    Код (Text):
    1. <?php
    2. $subject = "новый комментарий на статью";
    3. $message = "новая статья";
    4. mail("zevilz13@yandex.ru", $subject, $message, $headers);
    5. ?>
    Письмо не пришло.
    Затем скинул оба файла на локальный комп и потестил. Теперь при открытии страницы с ихним скриптом со статусом письмо не приходит, а при открытии страницы с моим скриптом письмо пришло. Что за фигня? Третий день уже голову ломаю...

    Добавлено спустя 45 минут 14 секунд:
    Проблему похоже нашел. Что-то с кодировкой. Если в сообщении имеется хотя бы одна русская буква, то сообщение не отправляется. Это как нибудь лечится?
    Вот мой скрипт оповещения меня о новом комментарии:
    Код (Text):
    1.               $address = "zevilz13@yandex.ru";
    2.               $subject = "Новый комментарий на статью ".$myrow3["title"];
    3.               $post_title = $myrow3["title"];
    4.               $message = "Появился новый комментарий на статью ".$post_title."\n
    5.                 Комментарий добавил(а): ".$arr['author']."\n
    6.                 Текст комментария: ".$arr['body']."\n
    7.                 Ссылка на страницу: http://".$_SERVER['SERVER_NAME']."/view_video.php?id=".$arr['post_id'];
    8.             $headers = "Subject: Новый комментарий\r\n"
    9.             ."From: Новостная рассылка\r\n"
    10.             ."Content-type:text/plain;Charset=utf8\r\n");
    11.               mail($address,$subject,$message,$headers);
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Во-первых, попробуй заменить заголовок
    Код (Text):
    1. "Content-type:text/plain;Charset=utf8\r\n"
    на
    Код (Text):
    1. "Content-type:text/plain;Charset=utf-8\r\n"
    (в utf-8 добавь чёрточку).
    Во вторых убедись, что файл действительно сохранён в этой кодировке (utf-8) и сайт работает в этой кодировке.
     
  3. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    на 100% все в utf-8. черточку добавил, изменений никаких
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Фиг знает.
    Попробуй тут
    "From: Новостная рассылка\r\n"
    вместо "Новостная рассылка" реальный e-mail вписать.