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


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 105 0 тем, 10 сообщений, 7 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 81 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #5

    BLIK
    Очков активности: 36 Вне конкурса за определение пользователя месяца

  • Фотография AnnaYa
    #6

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Developer
    #7

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография TimurR
    #8

    TimurR
    Очков активности: 31.5 Вне конкурса за определение пользователя месяца

  • Фотография Алексей111
    #9

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография fedornabilkin
    #10

    fedornabilkin (zaka4ano.ru)
    Очков активности: 24 0 тем, 4 сообщения, 4 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 24.09.2018
Топ 5 участников по репутации


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

#1 Вячеслав

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

Отправлено 29 March 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
  • Пользователь
  • 642 сообщений
  • Репутация: 188

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

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

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

  • 0

#3 Вячеслав

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

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

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

#4 yury

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

Отправлено 29 March 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 March 2010 - 16:03

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

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

#6 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0

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

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

#7 Вячеслав

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

Отправлено 31 March 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 April 2010 - 18:45

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

#9 Dador

Dador
  • Неактивные
  • 1 сообщений
  • Репутация: 0

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

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


  • 0

#10 Вячеслав

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

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

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

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

  • 0

robot

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


Похожие темы

  Название темы Автор Статистика Последнее сообщение

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