Не отправляется mail() , при добавлении хедера From:

nds88

Новичок
Всем привет. Помогите, кто чем может. Я не из любителей при малейших непонятках и чуть не работающем коде , бить тревогу и кидаться с вопросами на форумы, да и с PHP не вчера знаком. Но сейчас я в тупике. И казалось бы над чем... Над простенькой функцией mail() . Заранее прошу прощения если такая тема уже поднималась. Но я перегуглил весь google, но именно такой не встретил, хотя не исключено что не так гуглил.. Теперь собственно сама problem : Написал простенькую форму обратной связи, проверил на Denwer . Как и следовало ожидать, письмицо покорно прибыло по назначению Т.е. в папку !sendmail. Залил на хостинг, заполняю форму, посылаю, проверяю - ящик пуст, при том что никаких багов функция не отдаёт, т.е. работа mail() == true. Смотрю код - в порядке, иду гуглить. Основная масса комментов на похожие посты, грешат на хостинг, мол не работает SMTP. Чуть было уже не поверил, но уж очень засомневался. Решил помучать и без того потёртую функцию. В общем путём нехитрых действий: почитал, в N'ный раз мануал по mail(), проверил все переменные - в порядке,но всё же решил отправить без передачи переменных, а сразу подставляя значения в функцию. В ящике тишина... в потоке негодования, начал сокращать и эти значения, т.к. из 4 ( вообще 5, но у меня было 4 ) параметров принимающихся mail() , необязательным является только 4ый - header , решил с него и начать. И о, чудо! Трей извещает меня о новом письме на почте. Гляжу, оно. Стало интереснее..Ещё общнее, путём ещё более не хитрых действий установил что, трабла таится в заголовке именно "From:", со всеми остальными ( MIME, content-type, reply to и т.д ) работает на ура. Это огорчило меня больше, чем если бы хостинг не поддерживал PHP, и решил всё таки воспользоваться подсказкой "помощь зала" , т.к. 50/50 и звонок другу гуглу я исчерпал. Думаю изложил достаточно подробно, но для приличия приведу код простейшей mail():
PHP:
$to  = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
     'Reply-To:[email protected]';
mail($to, $subject, $message, $headers);
Ну вот как то так... Хотел покороче получилось не очень. Заранее благодарен всем, кто хотя бы прочитал.
 

fixxxer

К.О.
Партнер клуба
нельзя просто так взять и переопределить from

PHP:
$to  = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'Reply-To: [email protected]';
$extra = '-f [email protected]';
mail($to, $subject, $message, $headers, $extra);
еще можно установить php ini-настройку sendmail_from

в зависимости от параноидальности настройки mta на сервере либо сработает, либо нет.
 

fixxxer

К.О.
Партнер клуба
и в следующий раз пиши короче, твоя графомания никому не впилась никуда
 

nds88

Новичок
и в следующий раз пиши короче, твоя графомания никому не впилась никуда
Старался со всех сил, но решил потратить немного своего времени, и с экономить его другим на написание полезных советов типа : "Пиши в поддержку хостинга что бы, включили PHP", "Проверь переменные" и т.д. и получить только такие компетентные и содержательные ответы, как твой. Впредь буду стараться лучше
 

nds88

Новичок
нельзя просто так взять и переопределить from

PHP:
$to  = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'Reply-To: [email protected]';
$extra = '-f [email protected]';
mail($to, $subject, $message, $headers, $extra);
еще можно установить php ini-настройку sendmail_from

в зависимости от параноидальности настройки mta на сервере либо сработает, либо нет.
$extra тоже не работает...
 

fixxxer

К.О.
Партнер клуба
пробуй ini_set('sendmail_from', '[email protected]')

если не работает и так, отправляй через smtp. для этого удобно использовать готовые библиотеки, такие как swift mailer или phpmailer
 

nds88

Новичок
пробуй ini_set('sendmail_from', '[email protected]')

если не работает и так, отправляй через smtp. для этого удобно использовать готовые библиотеки, такие как swift mailer или phpmailer
И так не работает. Хотя echo ini_get('sendmail_from') выводит [email protected]. Говорит ли это однозначно, о том что нужно отправлять через smtp? или может быть можно всё таки подсунуть ему какой нибудь header или пятый параметр, вкупе с ini_set('sendmail_from', '[email protected]') ? Просто я всегда раньше использовал header "From:" и проблем никогда не возникало, а сейчас это до жути примитивная страница с 3мя картинками и формой и что то не особо хочется уделять ей столько чести и подключать библиотеки. Напиши пожалуйста код который будет однозначно или работать или нет. В крайнем случае придётся юзать phpmailer
 

nds88

Новичок
ёлы-палы... моя страница с формой весит 10кб , а PHPmailer, в самой краткой сборке которую нашёл, 150кб, ещё и кода писать. Смешно же блин...Неужели нет попроще способа..?
Или подскажите, как написать на PHPmailer отправку попроще?
 
Сверху