Перейти к содержимому


Партнерская программа Kredov

Заголовок From в функции mail()

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 29 Март 2010 - 11:04

Всем привет!

Помогите решить такую задачу, нужно при отправке письма на почту получателя указывать от кого оно пришло, иначе же отображаеться имя хоста на котором лежит сам скрипт:

	$recipient = "tp@bigmir.net";
$subject = trim(addSlashes($subject));
$surname = ucwords(trim(addSlashes($surname)));
$name = ucwords(trim(addSlashes($name)));
$midellname = ucwords(trim(addSlashes($midellname)));
$from = trim(addSlashes($email));
$comment = trim($comment);

$body = "Контактное лицо: \r\n".
"Фамилия: ".$surname."\r\n".
"Имя: ".$name."\r\n".
"Отчество: ".$midellname."\r\n".
"Email: ".$from."\r\n".
"Телефон: ".$phone."\r\n".
"Текст сообщения:\r\n".$comment;

$formsent = mail($recipient, $subject, $body);

if($formsent){$data = $name." благодарим за ваше сообщение!";}else{$data = "Ошибка1!";}

echo iconv ("cp1251", "UTF-8", $data);


Пробовал так:

  $headers = "From: ".$from."\r\nbcc:phb@sendhost\r\cContent-type: text/plain\r\nX-mailer: PHP/".phpversion();
$formsent = mail($recipient, $subject, $body, $headers);


Без изменений + письмо приходит свернутым (Gmail), пример брал из "PHP 5 и MySQL Библия пользователя".
Подскажите как этот заголовок правильно сформировать, спасибо.

 

 

  • 0

#2 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 29 Март 2010 - 16:46

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

Вячеслав,
как-то у вас не очень внятно написано, чего вы хотите.
Есть подозрение, что вы хотите, чтобы в поле "From" стоял либо адрес отправителя (если он указан), а если он не указан, то имя хоста, где лежит скрипт.
В этом случае надо записать, примерно, так:
$from = $from == "" ? $from : $_SERVER['SERVER_NAME'];

  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 29 Март 2010 - 18:18

Да нет же, дело все в том что "прихотящее" письмо на почтовик отправителем указывает "имя сервера", а мне нужно подставить туда "имя отправителя" - тоесть Email, это поле из формы являеться обязательным, но дело не в этом, я заголовок низнаю как отправить, чтоб почтовик понял что отправитель это адрес Email из поля формы (Emal вводит юзер).
  • 0

#4 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 29 Март 2010 - 21:41

я заголовок низнаю как отправить, чтоб почтовик понял что отправитель это адрес Email из поля формы (Emal вводит юзер).

Вячеслав,
уж не знаю, чего и почему вы не можете добиться от почтовика.
Но у меня выполнение вот такого кода
<?php
$recipient = "to@mail.ru";
$subject = "test";
$from = "tst@mail.ru";
$body = "Hi there!";
$headers = "From: ".$from."\r\nContent-type: text/plain; charset=windows-1251\r\nX-mailer: PHP/".phpversion();
$formsent = mail($recipient, $subject, $body, $headers);
?>
без проблем присылает на адрес "to@mail.ru" письмо с текстом "Hi there!" от "tst@mail.ru" (содержимое поля From).

На всякий случай, подробности с примерами: про функцию mail()
там есть пример и про поле From.
  • 0

#5 BaCo

BaCo
  • Пользователь
  • 103 сообщений
  • Репутация: 0

Отправлено 31 Март 2010 - 16:03

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

Дело в том, что не все хостинги позволяют задавать значение заголовков. Например, на первом хостинге (адреса говорить не буду) функция mail() возвращала ошибку при заданном значении From:, но зато на другом хостинге я в это значение ставил совершенно любой адрес и письмо приходило с него. :rolleyes:
  • 0

#6 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 31 Март 2010 - 18:03

НАсколько я знаю - это не хостинги, а адреса не все возможны. Например mail.ru не дает так просто от своего имени отправить. попробуйте другой адрес.
  • 0

#7 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 31 Март 2010 - 22:18

Эхх видать не судьба все нормально настроить так как мне нужно, и хостинг главное поменял с webnames.ru на nic.ru по одной из причин у первого вообще функция mail() не работает!!! И суппорт молчит как рыба!!! Думал у nic.ru будет все по человечески, а оказываеться и тут все через жопу!!! - http://forum.nic.ru/....php/t-567.html

единственное чего добился при использовании примера по данной ссылке так это то что поменялось в пиьме имя отправителя, но адрес остался тот-же - сервера!!!

И еще хрень - у них не работает функция iconv() а без нее никак!
Иначе приходят крякозяблы, тоже непойму почему, может потому что данные из формы отправляються по Ajax???
:rolleyes:
  • 0

#8 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 01 Апрель 2010 - 18:45

А ты в заголовке указываешь кодировку? Когда из БД вытаскиваешь соответствуеткодировка? Или меняется?Проверь внимательно каждое звено.
  • 0

#9 Dador

Dador
  • Пользователь
  • 1 сообщений
  • Репутация: 0

Отправлено 04 Апрель 2010 - 01:25

Вячеслав, Если ты имел в виду имя отправителя поправить, то вместо e-mail посылаешь <имя e-mail>, или как то так


  • 0

#10 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 05 Апрель 2010 - 19:12

у меня вот так, и подставляеться толко Имя и Фамилия но адрес отправител тот же - сервера(((

$headers = "From: $surname $name <$from>\r\n";

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru