[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mail без ошибок. письма нет
seine
Функция mail() возвращает true. Протестил у себя, все верно, письмо шлется как надо. Залил скрипт на серврер - не шлется. Они (люди сервера) говорят, что с их стороны никаких проблем нет, тестовый скрипт работает.
В чем может быть проблема? blink.gif



Спустя 3 минуты, 23 секунды (29.12.2009 - 14:03) DedMorozzz написал(а):
Может заглушка? Проверь. Кадато с таким сталкивался. Все письма были на заглушке, т.е. на компе.

Спустя 8 минут, 7 секунд (29.12.2009 - 14:12) seine написал(а):
ну, на компе - да, стоит заглушка. я с помощью нее и проверяю отправляются письма или нет, и что в них содержится.
они с сервера они не шлются

Спустя 1 минута, 17 секунд (29.12.2009 - 14:13) glock18 написал(а):
Сервер может быть в блэклисте.

Спустя 9 минут, 49 секунд (29.12.2009 - 14:23) inpost написал(а):
Ты лучше скинь скрипт, как ты письма отправляешь, так как твой сервер может использовать стандартный обратный адрес, как например на моем, "nobody", и в итоге блокируется, поэтому в mail() надо прописать и обратный адрес, тогда сервер будет получать нормально письма.
Если не использовать уникальный обратный адрес, то некоторые почтовые сервисы твои сообщения принимают за спам.
Попробуй с моим рабочим скриптом:


if(substr(PHP_OS, 0, 3) == "WIN")
$n = "\r\n";
else
$n = "\n";

$to = 'my@list.ru';
$from = 'my@list.ru';
$headers = 'Content-type:text/plain; Charset=windows-1251\r\n'. $n;
$headers .= 'From: <'. $from .'>'. $n;
$headers .= 'MIME-Version: 1.0'. $n;
$headers .= 'Date: '. date('D, d M Y h:i:s O') . $n;
$message = $text_message."\nС уважением, ".$name."\nМой e-mail: ".$email."";
mail($to, $subject, $message, $headers, '-f'. $from );


Спустя 2 минуты, 23 секунды (29.12.2009 - 14:25) seine написал(а):
в php.ini есть

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =

т.е. мне надо в .htaccess написать

php_value sendmail_path /usr/sbin/sendmail


/usr/sbin/sendmail - путь к sendmail на сервере

Спустя 4 минуты, 2 секунды (29.12.2009 - 14:29) seine написал(а):
Цитата (inpost @ 29.12.2009 - 11:23)
использовать стандартный обратный адрес, как например на моем, "nobody", и в итоге блокируется, поэтому в mail()

Чувак спасибо, проблема была связна с этим. Обратный адрес был вида info@mysite а вот .ru забыл поставить!
сделал info@mysite.ru и заработало

блин, из-за такой фигни не работало!

Спустя 1 час, 9 минут, 58 секунд (29.12.2009 - 15:39) seine написал(а):
Письмо отправляется, но возникл другая проблема. Не хотел создавать новую тему, похожего направления, хотя может и стоило бы это сделать.
Так вот, письмо приходит, а в заголовке вместо русских букв вопросики (????)
вот начало письма

Subject: =?utf-8?b?wuDsIO3g7+jx4OvoIO3gIHRlaG5vcGFyay15dWcucnU=?=
To: почта@mail.ru
X-PHP-Originating-Script: 0:feedback.php
Content-type: text/plan; charset="windows-1251"
MIME-Version: 1.0
From: <info@сайт.ru>
Date: 29 Dec 2009 12:33:15


страница, с которой шлется письмо в кодировке cp1251, но заголовок ведь должен быть в utf-8, поэтому с заголовоком делаю


iconv('windows-1251', 'utf-8', $subject);
$subject = '=?utf-8?b?'.base64_encode($subject).'?=';


хотя, когда было без строки iconv тоже вопросики были.

Спустя 6 минут, 43 секунды (29.12.2009 - 15:46) twin написал(а):
Тут поройся

Спустя 10 минут, 52 секунды (29.12.2009 - 15:57) seine написал(а):
Цитата (twin @ 29.12.2009 - 12:46)
Тут поройся

О, спасибо twin, полдня искал эту статью. На самом деле лучшая статья, из тех, что я читал про mail().
Я ж свой скрипт на основании ее и делал! Щас всю ее просмотрел, про преобразование заголовка только это есть

subject = '=?utf-8?b?'. base64_encode($subject) .'?=';


банальный скрипт (остальное не имеет значения)

<?php
$to = 'mail@mail.ru';
$subject = 'Табе пакет';
$subject = "=?utf-8?b?". base64_encode($subject) ."?=";
$message = 'messege';

mail($to, $subject, $message);
?>

присылает заголовок с вопросами.
еще раз повторюсь у меня на странице и сам скрипт написан в кодирровке cp1251, я на нее грешу.

Спустя 22 минуты, 31 секунда (29.12.2009 - 16:19) twin написал(а):
Ну ты же кодируешь его в утф $subject = "=?utf-8?b?". base64_encode($subject) ."?="; Поставь свою кодировку туда.

Спустя 23 минуты, 2 секунды (29.12.2009 - 16:42) inpost написал(а):
Обе страницы сохранил в 'windows-1251', так же и кодировки на обоих страницах тоже 'windows-1251'.
Все отправляется нормально!

<?php session_start();
header("Content-Type: text/plain; charset=windows-1251");
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email=$_POST['email'];}
if (isset($_POST['subject'])) {$subject = $_POST['subject'];}
if (isset($_POST['text_message'])) {$text_message=$_POST['text_message'];}

$name = iconv('utf-8', 'windows-1251', $name);
$subject = iconv('utf-8', 'windows-1251', $subject);
$text_message = iconv('utf-8', 'windows-1251', $text_message);
if(substr(PHP_OS, 0, 3) == "WIN")
$n = "\r\n";
else
$n = "\n";

$to = 'inpost@list.ru';
$from = 'inpost@list.ru';
$headers = 'Content-type:text/plain; Charset=windows-1251\r\n'. $n;
$headers .= 'From: <'. $from .'>'. $n;
$headers .= 'MIME-Version: 1.0'. $n;
$headers .= 'Date: '. date('D, d M Y h:i:s O') . $n;
$message = $text_message."\nС уважением, ".$name."\nМой e-mail: ".$email."";
mail($to, $subject, $message, $headers, '-f'. $from );
?>

Спустя 13 дней, 15 часов, 56 минут, 17 секунд (13.01.2010 - 08:39) Иззат написал(а):
Не могу собрать сообщение для отправки через PHP.

HTML-код (anketa.htm):
<form action="obrabotka.php" method="POST" name="form1">

<p>
<b>Ваш пол:</b>
<input type="radio" name="pol" value="muzh">Мужской
<input type="radio" name="pol" value="zhen">Женский
</p>

<p>
<b>Ваш возраст:</b>
<input type="radio" name="vozv" value="до 25 лет">до 25 лет
<input type="radio" name="vozv" value="от 26 до 30 лет">от 26 до 30 лет
<input type="radio" name="vozv" value="от 31 до 35 лет">от 31 до 35 лет
<input type="radio" name="vozv" value="от 36 до 40 лет">от 36 до 40 лет
<input type="radio" name="vozv" value="от 41 до 45 лет">от 41 до 45 лет
<input type="radio" name="vozv" value="от 46 лет">от 46 лет
</p>

<p>
<b>Ваше образование:</b>
<input type="radio" name="obraz" value="Среднее">Среднее
<input type="radio" name="obraz" value="Средне-специальное">Средне-специальное
<input type="radio" name="obraz" value="Неоконченное высшее">Неоконченное высшее
<input type="radio" name="obraz" value="Высшее">Высшее
<input type="radio" name="obraz" value="Два и более высших">Два и более высших
</p>

<p>
<b>Семейное положение:</b>
<input type="radio" name="semya" value="zhenat">женат/замужем
<input type="radio" name="semya" value="nezhenat">не женат/не замужем
<input type="radio" name="semya" value="razveden">разведен/разведена
<input type="radio" name="semya" value="vdovec">вдовец/вдова
</p>

<p>
<input type="submit" name="button" value="Отправить анонимные данные">
</p>

</form>


Файл обработки (obrabotka.php):
<?php
mail("test@test.ru","Анкета удовлетворённости персонала","Пол: $pol Возраст: $vozv Образование: $obraz Семейное положение $semya ","Content-type:text/plain; charset = windows-1251\r\n");
?>

Оба файла находятся в одном каталоге.

Приходит сообщение без значения переменных:
Пол: Возраст: Образование: Семейное положение

плз, помогите.

Спустя 1 день, 14 часов, 13 минут, 55 секунд (14.01.2010 - 22:52) inpost написал(а):
$pol= $_POST['pol'];

проделай это со всеми значениями.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.