Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > функция mail() |
Автор: artsb 8.11.2008, 00:09 | ||
Всем привет! Знаю что таких тем много ![]() Помогите разобраться с функцией mail(string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] ). Вот кусок кода из примера:
From: - это от кого пришло, а остальные? И что здесь делает To:, если оно есть отдельно? Что ещё здесь можно передать? Зачем нужен четвёртый параметр? Как сделать, чтобы вместо мыла, при просмотре почты, отображался текс. (Например, если мыло есть в адресной книге, отображается не мыло, а имя отправителя). Спасибо. |
Автор: seos 12.11.2008, 05:12 |
скачай пример на php .. там све есть и описание всех параметров и как отображать имя вместо мыла( Mary <[email protected]>) |
Автор: artsb 17.11.2008, 17:52 | ||
Решил не создавать новую тему. Отправляю письмо так:
$name - имя, которое посетитель сайта ввёл в форму. $email - адрес почты, который ввёл посетитель сайта. Хочу, чтобы при просмотре почтового ящика, письма выглядели так, как-будто их отправил посетитель сайта со своего почтового ящика, а именно, чтобы в поле 'От кого' было написано имя отправителя и его e-mail адрес. При использовании приведённого выше кода, имя отопражается правильно, а вот вместо адреса, хранящегося в $email отображаетя адрес сервера на котором находится сайт. Реально, вообще, подставить другой адрес? |
Автор: ZlojEzh 17.11.2008, 19:36 |
помимо From надо указывать дополнительные заголовки - Reply-to, Sender |
Автор: destrd 17.11.2008, 19:48 |
Выдерните класс для отправки писем из какого-нибудь framework'a. Там и отправка файлов будет и проч. |
Автор: ksnk 17.11.2008, 20:08 | ||
Реально! Ситуация, однако, странная. Было бы более представимо, если бы полностью замещался заголовок From на собственный, это бы значило, что mail все равно подставляет свой From, не взирая на его наличие, а так даже не могу вообразить. Может вирус? ![]() У Денвера есть забавная фенечка - эмулятор-затычка для sendmai'а. Отправленное письмо сохраняется на диске и его можно просмотреть хоть аутлуком, хоть текстовым редактором и проверить в точности чего-ж там нагенерилось. Очень удобно для отладки. |
Автор: artsb 17.11.2008, 20:11 | ||||||
Добавил Reply-to - ничего. Про Sender ничего не нашёл. Не знаю как егго записывать. Можно пример?
Тоже вариант. Но лучше, когда понимаешь что делаешь. ![]() Добавлено через 1 минуту и 44 секунды
Можете описать как? |
Автор: destrd 17.11.2008, 21:04 |
Посмотреть как это там реализовано, и сделать похоже, проще и самому. |
Автор: ksnk 17.11.2008, 22:55 | ||
Как поставить http://www.denwer.ru/? Вообще-то это Виндовая сборка php+Апач+MySql. В принципе - она заточена под отладку веб-приложений локально. Она ставится относительно безболезненно даже при минимальном понимании смысла всех действий по инициализации всего этого добра ![]() Сама затычка представляет собой файл sendmail.exe, который уже размещен в том месте, который ожидает установленный Денвером php. Функция mail по умолчанию посылает письма через этот самый sendmail, а этот самый sendmail выкладывает их на диск. То есть самостоятельного смысла затычка не имеет. В Юниксах, насколько мне не изменяет мой склероз, можно настроить базовый sendmail, чтобы он вел себя точно так-же, то есть складировал письма вместо отправки или вместе с отправкой. Кстати, почти все примеры в описании функции http://ru2.php.net/manual/ru/function.mail.php содержат использование заголовка From:. Это наводит на мысль, что проблем с Фромом ни у кого нет ![]() |
Автор: artsb 18.11.2008, 09:09 | ||||
Там, насколько мне известно, довольно много мусора. Но всё равно спасибо за совет. Да не-е-е. Денвер уже стоит. Я спрашиваю как сделать чтобы просмотреть
Но вообще-то, что там смотреть если и так всё видно: имя то, кторое я подставил, а адрес другой. Могу выложить скрин. Добавлено через 14 минут и 19 секунд Вот: ![]() |
Автор: ksnk 18.11.2008, 10:25 | ||
artsb, Все страньше и страньше ![]()
Про то, что Денверовский sendmail состоит из одного только exe я, видимо, погорячился. Каталог там довольно представительный - 11 файлов ... У меня такого эффекта нет. Хотя я посылаю адрес попроще, без угловых скобок. Может в этом дело? |
Автор: artsb 18.11.2008, 10:45 |
Скорее всего нет. Т.к. я пытался отправлять просто адрес без имени - то же самое. |
Автор: ksnk 18.11.2008, 10:57 | ||
А если просто тупо исполнить кусок из документации
? |
Автор: artsb 18.11.2008, 12:20 |
ksnk, попробую вечером. Сейчас времени нет. |
Автор: artsb 18.11.2008, 23:21 |
ksnk, всё равно :( |
Автор: ZlojEzh 19.11.2008, 09:42 |
artsb, покажите полный заголовок получаемого письма на какой платформе это должно работать? загвоздка еще может быть в настройках sendmail |
Автор: artsb 19.11.2008, 10:23 |
Дык я же показал скрин. Там больше ничего нет. Или нужно что-то ещё? Вы имеете ввиду ОС? Как её решить? |
Автор: unicross 19.11.2008, 18:04 | ||
artsb, попробуйте так
|
Автор: ZlojEzh 19.11.2008, 19:25 |
нужен полный заголовок в outlook его можно получить из "свойства" письма - Подробнее в gmail - показать все заголовки, или что-то в этом роде просто не ясно в чем проблема - не устанавливается заголовок From, или его перекрывает какой-нить другой я сталкивался с похожей проблемой в sendmail под *nix, когда в настройках его запуска был жестко задан обратный адрес (-v или -f, не помню точно) |
Автор: artsb 19.11.2008, 19:32 |
unicross, не помогло :( |
Автор: artsb 19.11.2008, 20:26 |
В почте на сервере, в общем списке писем в поле "От:" отображается только имя отправителя, а при открытии письма - ещё и адрес отправителя. При использовании первого приведённого мною кода. В общем списке: Указанное_мною_имя При открытии письма: Указанное_мною_имя <[email protected]> Потом воспользовался кодом unicross. Не помогло. Убрал угловые скобки. В общем списке: ???????????? Указанный_мною_адрес При открытии письма: Указанное_мною_имя Указанный_мною_адрес Но, в этом случае, при отправке ответа, в поле "Кому:" всё равно вставляется <[email protected]> ZlojEzh, я не пользуюсь почтовыми программами, поэтому так ничего сказать не могу. |
Автор: artsb 19.11.2008, 22:32 |
Настроил The Bat! ![]() Отправляю с сайта из формы письмо: Имя: Artsb E-mail: здесь_моё_мыло Тема: Просто так Сообщение: Тестовое сообщение Вот исходный код письма (из The Bat!): << Убрал на всякий случай ![]() |
Автор: ZlojEzh 20.11.2008, 01:33 |
а что выдает ini_get('sendmail_path') ? |
Автор: Sanchezzz 20.11.2008, 06:53 | ||
выкиньте свой майл лучше используйте SNTP хоть за спам не посчитают класс для работы с SNTP атаче минус в отправке SNTP нужна авторизация реального email мини пример:
+ в архиве есть отправка и через mail нормальным способом ... |
Автор: artsb 20.11.2008, 10:44 |
ZlojEzh, /usr/sbin/sendmail -t -i Sanchezzz, спасибо. Уже скачал, но разбираться буду вечером. Потом отпишусь. |
Автор: artsb 20.11.2008, 22:56 |
Sanchezzz, спасибо. Теперь всё ОК. |