проблема с mail().

Статус
В этой теме нельзя размещать новые ответы.

unlex

Новичок
проблема с mail().

Сложилась совершенно аномальная ситуация:
1)
PHP:
$body="Hello";
mail($_POST['email'],"subject",$body ,"From: test \r\n");
письмо не приходит

2)
PHP:
mail($_POST['email'],"subject","Hello","From: test \r\n");
замечательно приходит

Т.е. не хочет отправлять, если тело письма содержится в переменной

Так тоже не идет
PHP:
mail($_POST['email'],"subject","Hello $body","From: test \r\n");
Чё за дела?
 

tf

крылья рулят
может прежде чем писать сюда посмотри само письмо
(сюда писать не надо)
 

unlex

Новичок
Фанат
Поясни, пожалуйста.

-~{}~ 18.03.07 17:05:

tf
ну и че тут, по твоему, не так?
 

unlex

Новичок
Да что ж такого в этом коде?
Это ж пример из учебника прям. То же самое и в документации по php.
Зачем отсылать меня про спам читать и прочие вещи? Это конечно крайне познавательно, но я чего-то никак главного понять не могу - какое отношение это имеет к моей проблеме?
 

Фанат

oncle terrible
Команда форума
ты же сам просил пояснить. вот и пояснили.
теперь хаять не надо.

а проблема твоя, разумеется, в опечатках.
если включить логическое мышление, то, разумеется, разницы - как прописано поле, не будет.
Но ты имеешь право думать по-своему.
 

unlex

Новичок
Поясню:
никаких ошибок не наблюдается. если написать
PHP:
if (mail($_POST['email'],"subject",$body ,"From: test \r\n"))
 echo "Ушло. 100% ушло ";
else
 echo "Ошибка."
то лицезреем подтверждение того, что все-таки ушло. ВО ВСЕХ СЛУЧАЯХ. Но вот доходит до получателя только см. пункт 2.
 

maxru

МИФИст
unlex, а не содержатся ли у тебя в теле письма некие мифические символы, типа "\n" или "\r"?
 

unlex

Новичок
tf
Ты сам хоть знаешь в чем тут дело?
У меня на этот счет сомнения размером в десять больших и вкусных лесных орехов.
Ну так давай не давай мне больше бессмысленных фраз.
maxru
содержатся. ну так вариант 2 их тоже содержит, но письма-то доходят.
 

maxru

МИФИст
Все-таки посмотри, что у тебя в теле. Попробуй послать сплошную строку, без \r\n. Мне кажется, у тебя где-то системные ascii символы сидят.
А smtp-сервер отмашки не присылает, типа "Не могу доставить.."?
 

unlex

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

-~{}~ 18.03.07 22:11:

Подтвердились мои сомнения - не в этом дело.
А вот в чём?
 

Фанат

oncle terrible
Команда форума
откуда в строке "Hello" символы \r\n?

-~{}~ 18.03.07 23:13:

это так, риторический вопрос.
можно не отвечать
 

unlex

Новичок
нет никаках ошибок
(error_reporting(E_ALL))
к логам сервера доступа нет.
письмо просто тупо не доходит, если тело письма содержится в переменной.
меня это начинает маленько раздражать... бред какой-то
 

baev

‹°°¬•
Команда форума
unlex, вставьте перед этим:
if (mail($_POST['email'],"subject",$body ,"From: test \r\n"))
echo "Ушло. 100% ушло ";
else
echo "Ошибка."
— вот это:
PHP:
echo $body;
Полученный вывод покажите здесь.
 

unlex

Новичок
Опа. Слово Hello пришло. Но появилась еще одна проблема, если переменная $body содержит следующее
PHP:
$body="Click here: $verify_url?email=$safe_email&verify_string=$verify_string";
то выходит следующее:
PHP:
echo $body."<br>";

if (mail($_POST['email'],"subject",$body ,"From: test \r\n"))
echo "Ушло. 100% ушло ";
else
echo "Ошибка."
Результат вывода:
Click here: http://www.<адрес>?email=<какое-то мыло>&verify_string=BeMBG%23j%2B%3F%23c2AymW
Ушло. 100% ушло

В этом случае письмо не приходит.
(если переменная $body содержит только "Hello", то все нормально)
Истина где-то рядом.
Может кто-то уже понял в чем тут дело?
 

Фанат

oncle terrible
Команда форума
Опа. Слово Hello пришло.
Сложилась совершенно аномальная ситуация:
1)

$body="Hello";
mail($_POST['email'],"subject",$body ,"From: test \r\n");

письмо не приходит
я понимаю, когда человек морочит голову себе. Это его право.
Но вот когда он морочит голову другим - это, я считаю, западло.

В правилах форума написано: приводить в примерах реальный код, а не высасывать его из пальца.
Рекомендую впредь их соблюдать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху