|
|
|
| Скачал здесь скрипт для отправки сообщений с сайта. Скрипт нужен был для отправки заказов с сайта на адрес хозяина сайта. Все настроилось легко, спасибо написавшему этот скрипт.
Но сейчас понадобилось, чтобы параллельно это же сообщение получал тот, кто заказывает. Т.к. отправляет сервер, получатель видит очень некрасивый адрес отправителя, что то в духе www-data@vs122225.tixtools.com. Заказчика это может напугать, хотелось бы, чтобы адрес выглядел красиво. Например "Магазин Максим".
в mail_class.php дописал следующее. Но ничего не работает. Как и что нужно подправить, чтобы получатель видел не email, а текст.
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
if(!empty($this -> from))
{
$this->headers[] = "From: Магазин Максим<www-data@vs122225.tixtools.com>";
}
if(!empty($this -> reply_to))
{
$this -> headers[] = "Reply_to: $this -> reply_to";
}
|
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Geoli
(10.05.2010 в 20:07)
| | по большому счету, это вопрос к хостеру. | |
|
|
|
|
|
|
|
для: Trianon
(10.05.2010 в 20:20)
| | Я так понял, направление мысли было правильное. Просто у провайдера это блокируется?
Что именно нужно спросить у провайдера? Как это называется? Чтобы не на пальцах и не бекать мекать. | |
|
|
|
|
|
|
|
для: Geoli
(10.05.2010 в 23:04)
| | Продолжая тему, вот конечный код mail класса.
Объясните мне, как происходит прикрепление заголовка headers к сообщению.
Я никак не могу понять.
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
if(!empty($this -> from))
{
$this->headers[] = "From: $this -> from";
}
if(!empty($this -> reply_to))
{
$this -> headers[] = "Reply_to: $this -> reply_to";
}
// проверяем допустимость почтового адреса
if ($this -> validate_email)
{
if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this -> to))
{
return false;
}
return true;
}
}
function send()
/* метод отправки сообщения */
{
if(!$this -> check_fields()) return true;
if (mail($this -> to, htmlspecialchars( stripslashes(trim($this -> subject))),
htmlspecialchars(stripslashes(trim($this -> msg))) ))
{
return true;
}else{
return false;
}
}
|
В грубую пишу так
mail('мой майл@майл.ru', 'заказ', 'само сообщение', 'Магазин Максим <mail@mail.com>');
|
Все работает. | |
|
|
|
|
|
|
|
для: Geoli
(10.05.2010 в 23:42)
| | после этих вот htmlspecialchars(stripslashes(trim( не то что объяснять что-либо....
Хочется напечатать этот код на бумажке помягче, ну и дальше сами понимаете.
Принтер жалко. | |
|
|
|
|
|
|
|
для: Geoli
(10.05.2010 в 23:04)
| | так и спросить.
Какими инструментами можно организовать отправку писем из php так, чтобы в исходящем адресе была строка вида "FromName" <fromuser@fromdomain> | |
|
|
|
|
|
|
|
для: Trianon
(11.05.2010 в 00:02)
| | Мое последнее сообщение было удалено админом. Жаль конечно, но он имеет право.
Но вопрос остался.
Скрипт, о котором идет речь, взять с этого же сайта, на котором мы его обсуждаем, в разделе "Примеры скриптов на PHP".
Дополнить в скрипте информацию для себя я смогу. Но хотелось бы узнать, зачем в этом классе создается массив $headers, если он дальше больше не фигурирует?
Если фигурирует, то укажите пожалуйста где? Если не фигурирует, то зачем он создавался?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Geoli
(11.05.2010 в 12:20)
| | Объясните мне, как происходит прикрепление заголовка headers к сообщению.
Я никак не могу понять.
Ну, похоже, не происходит.
Кстати, Ваш вариант тоже работать будет далеко не всегда. Вот тут почитайте, если интересно. | |
|
|
|
|
|
|
|
для: Geoli
(11.05.2010 в 12:20)
| | >Скрипт, о котором идет речь, взять с этого же сайта, на котором мы его обсуждаем, в разделе "Примеры скриптов на PHP".
ссылка поточнее не помешала... впрочем...
>Дополнить в скрипте информацию для себя я смогу. Но хотелось бы узнать, зачем в этом классе создается массив $headers, если он дальше больше не фигурирует?
>Если фигурирует, то укажите пожалуйста где? Если не фигурирует, то зачем он создавался?
у функции mail() есть опциональный параметер, через который передаются дополнительные поля заголовка. Смотрите мануал.
Проблема же в том, что поля From: и To: - основные, и бывают ситуации, когда в процесс их формирования вмешиваются php, MTA, сервер smtp и прочие субьекты почтового обмена.
Поэтому лучше уточнить у хостера. | |
|
|
|