Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> функция mail() 
V
    Опции темы
artsb
Дата 8.11.2008, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Всем привет!

Знаю что таких тем много smile

Помогите разобраться с функцией mail(string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] ).

Вот кусок кода из примера:
Код

$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

From: - это от кого пришло, а остальные? И что здесь делает To:, если оно есть отдельно? Что ещё здесь можно передать?
Зачем нужен четвёртый параметр?
Как сделать, чтобы вместо мыла, при просмотре почты, отображался текс. (Например, если мыло есть в адресной книге, отображается не мыло, а имя отправителя).

Спасибо.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
seos
Дата 12.11.2008, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.11.2008

Репутация: нет
Всего: нет



скачай пример на php .. там све есть и описание всех параметров и как отображать имя вместо мыла( Mary <[email protected]>)
PM MAIL   Вверх
artsb
Дата 17.11.2008, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Решил не создавать новую тему.

Отправляю письмо так:
Код

mail("адрес моей почты", $subject, $message, 'MIME-Version: 1.0' . "\r\n".
                    'Content-type: text/html; charset=windows-1251' . "\r\n".
                    'From: '.$name.' <'.$email.'>' . "\r\n");

$name - имя, которое посетитель сайта ввёл в форму.
$email - адрес почты, который ввёл посетитель сайта.

Хочу, чтобы при просмотре почтового ящика, письма выглядели так, как-будто их отправил посетитель сайта со своего почтового ящика, а именно, чтобы в поле 'От кого' было написано имя отправителя и его e-mail адрес.
При использовании приведённого выше кода, имя отопражается правильно, а вот вместо адреса, хранящегося в $email отображаетя адрес сервера на котором находится сайт.
Реально, вообще, подставить другой адрес?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ZlojEzh
Дата 17.11.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



помимо From надо указывать дополнительные заголовки - Reply-to, Sender
PM MAIL ICQ   Вверх
destrd
Дата 17.11.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: 3
Всего: 4



Выдерните класс для отправки писем из какого-нибудь framework'a. Там и отправка файлов будет и проч.
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
ksnk
Дата 17.11.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата

Реально, вообще, подставить другой адрес? 

Реально! 

Ситуация, однако, странная. Было бы более представимо, если бы полностью замещался заголовок From на собственный, это бы значило, что mail все равно подставляет свой From, не взирая на его наличие, а так даже не могу вообразить. Может вирус?  smile 

У Денвера есть забавная фенечка - эмулятор-затычка для sendmai'а. Отправленное письмо сохраняется на диске и его можно просмотреть хоть аутлуком, хоть текстовым редактором и проверить в точности чего-ж там нагенерилось. Очень удобно для отладки.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 17.11.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата

надо указывать дополнительные заголовки - Reply-to, Sender

Добавил Reply-to - ничего.
Про Sender ничего не нашёл. Не знаю как егго записывать. Можно пример?

Цитата

Выдерните класс для отправки писем из какого-нибудь framework'a. Там и отправка файлов будет и проч. 

Тоже вариант. Но лучше, когда понимаешь что делаешь. smile

Добавлено через 1 минуту и 44 секунды
Цитата

У Денвера есть забавная фенечка - эмулятор-затычка для sendmai'а. Отправленное письмо сохраняется на диске и его можно просмотреть хоть аутлуком, хоть текстовым редактором и проверить в точности чего-ж там нагенерилось. Очень удобно для отладки. 

Можете описать как?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
destrd
Дата 17.11.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: 3
Всего: 4



Цитата(artsb @  17.11.2008,  20:11 Найти цитируемый пост)
Но лучше, когда понимаешь что делаешь. 

Посмотреть как это там реализовано, и сделать похоже, проще и самому.
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
ksnk
Дата 17.11.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата

Можете описать как? 

Как поставить Денвер? Вообще-то это Виндовая сборка php+Апач+MySql. В принципе - она заточена под отладку веб-приложений локально. Она ставится относительно безболезненно даже при минимальном понимании смысла всех действий по инициализации всего этого добра smile

Сама затычка представляет собой файл sendmail.exe, который уже размещен в том месте, который ожидает установленный Денвером php. Функция mail по умолчанию посылает письма через этот самый sendmail, а этот самый sendmail выкладывает их на диск. То есть самостоятельного смысла затычка не имеет.

В Юниксах, насколько мне не изменяет мой склероз, можно настроить базовый sendmail, чтобы он вел себя точно так-же, то есть складировал письма вместо отправки или вместе с отправкой.

Кстати, почти все примеры в описании функции mail содержат использование заголовка From:. Это наводит на мысль, что проблем с Фромом ни у кого нет smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 18.11.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата

Посмотреть как это там реализовано, и сделать похоже, проще и самому. 

Там, насколько мне известно, довольно много мусора. Но всё равно спасибо за совет.

Да не-е-е. Денвер уже стоит. Я спрашиваю как сделать чтобы просмотреть
Цитата

проверить в точности чего-ж там нагенерилось

Но вообще-то, что там смотреть если и так всё видно: имя то, кторое я подставил, а адрес другой. Могу выложить скрин.

Добавлено через 14 минут и 19 секунд
Вот:
user posted image


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ksnk
Дата 18.11.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



artsb, Все страньше и страньше smile
Код

+-------------------------------------------------------------------------+
| Джентльменский набор Web-разработчика                                   |
| Версия: Денвер-3 2008-01-13                                             |


Про то, что Денверовский sendmail состоит из одного только exe я, видимо, погорячился. Каталог там довольно представительный - 11 файлов ... 

У меня такого эффекта нет. Хотя я посылаю адрес попроще, без угловых скобок. Может в этом дело?






--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 18.11.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(ksnk @  18.11.2008,  10:25 Найти цитируемый пост)
Может в этом дело?

Скорее всего нет. Т.к. я пытался отправлять просто адрес без имени - то же самое.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ksnk
Дата 18.11.2008, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



А если просто тупо исполнить кусок из документации
Код

<?php
$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
   'Reply-To: [email protected]' . "\r\n" .
   'X-Mailer: PHP/' . phpversion();

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

?




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
artsb
Дата 18.11.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



ksnk, попробую вечером. Сейчас времени нет.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 18.11.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



ksnk, всё равно :(


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ZlojEzh
Дата 19.11.2008, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



artsb, покажите полный заголовок получаемого письма

на какой платформе это должно работать? загвоздка еще может быть в настройках sendmail
PM MAIL ICQ   Вверх
artsb
Дата 19.11.2008, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(ZlojEzh @  19.11.2008,  09:42 Найти цитируемый пост)
покажите полный заголовок получаемого письма

Дык я же показал скрин. Там больше ничего нет. Или нужно что-то ещё?

Цитата(ZlojEzh @  19.11.2008,  09:42 Найти цитируемый пост)
на какой платформе это должно работать?

Вы имеете ввиду ОС?

Цитата(ZlojEzh @  19.11.2008,  09:42 Найти цитируемый пост)
загвоздка еще может быть в настройках sendmail 

Как её решить?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
unicross
Дата 19.11.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 21
Всего: 53



artsb, попробуйте так
Код

<?php
$to = '[email protected]';
$subject = 'Тема сообщения';
$message = 'Привет мир!';
$name = "Николай";
$email = "[email protected]";
$name = '=?windows-1251?B?' . base64_encode($name) . '?=';
$subject = '=?windows-1251?B?' . base64_encode($subject) . '?=';
$headers = 'Content-type: text/html; charset=windows-1251' . "\r\n" . 
   'From: '.$name.' <'.$email.'>' . "\r\n"  . 
   'Reply-To: ' . $email;
mail($to, $subject, $message, $headers, '-f' . $email);
?>

PM MAIL WWW   Вверх
ZlojEzh
Дата 19.11.2008, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



Цитата(artsb @  19.11.2008,  10:23 Найти цитируемый пост)
Дык я же показал скрин

нужен полный заголовок
в outlook его можно получить из "свойства" письма - Подробнее
в gmail - показать все заголовки, или что-то в этом роде

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

Цитата(ZlojEzh @  19.11.2008,  09:42 Найти цитируемый пост)
загвоздка еще может быть в настройках sendmail

я сталкивался с похожей проблемой в sendmail под *nix, когда в настройках его запуска был жестко задан обратный адрес (-v или -f, не помню точно)
PM MAIL ICQ   Вверх
artsb
Дата 19.11.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



unicross, не помогло :(


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 19.11.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



В почте на сервере, в общем списке писем в поле "От:" отображается только имя отправителя, а при открытии письма - ещё и адрес отправителя.

При использовании первого приведённого мною кода.
В общем списке: Указанное_мною_имя
При открытии письма: Указанное_мною_имя <[email protected]>

Потом воспользовался кодом unicross.
Не помогло.

Убрал угловые скобки.
В общем списке: ???????????? Указанный_мною_адрес
При открытии письма: Указанное_мною_имя Указанный_мною_адрес

Но, в этом случае, при отправке ответа, в поле "Кому:" всё равно вставляется <[email protected]>


ZlojEzh, я не пользуюсь почтовыми программами, поэтому так ничего сказать не могу.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 19.11.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Настроил The Bat! smile

Отправляю с сайта из формы письмо:

Имя: Artsb
E-mail:    здесь_моё_мыло
Тема: Просто так
Сообщение: Тестовое сообщение

Вот исходный код письма (из The Bat!):
<< Убрал на всякий случай smile >>

Это сообщение отредактировал(а) artsb - 21.11.2008, 09:54


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
ZlojEzh
Дата 20.11.2008, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



а что выдает ini_get('sendmail_path') ?
PM MAIL ICQ   Вверх
Sanchezzz
  Дата 20.11.2008, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



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

минус в отправке SNTP нужна авторизация реального email

мини пример:

Код

$mymail = new PHPMailer();
$mymail->IsSMTP();                                     
$mymail->Host = "localhost";  
$mymail->SMTPAuth = true;    
$mymail->Username = "username"; 
$mymail->Password = "passsword"; 
$mymail->From = "[email protected]";
$mymail->FromName = "fromname";
                  
$mymail->CharSet=$char_set;   
$mymail->ClearAddresses();
$mymail->AddAddress('[email protected]'); //можно добовлять адреса в  список отправке
$mymail->Body='текст сообщения';
$mymail->Subject='Тема сообщения';

$mymail->Send())


+ в архиве есть отправка и через mail нормальным способом ... 




Присоединённый файл ( Кол-во скачиваний: 22 )
Присоединённый файл  phpmailer_1.73.zip 87,69 Kb


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
artsb
Дата 20.11.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



ZlojEzh/usr/sbin/sendmail -t -i

Sanchezzz, спасибо. Уже скачал, но разбираться буду вечером. Потом отпишусь.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 20.11.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Sanchezzz, спасибо. Теперь всё ОК.

Это сообщение отредактировал(а) artsb - 21.11.2008, 00:20


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1057 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.