Без описания |
Поиск в теме | Версия для печати |
victor |
Отправлено: 18 Февраля, 2005 - 01:48:31
|
Full Member
Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005
Карма 0
|
TvoyWebу!!! Кто кто, а ты то телепат. Я тебе говорил, какя у меня проблема.TvoyWeb
(Добавление)
St.A.N.
Мне нужно создать автоматическую рассылку. Тело вроде бы я создал:
CODE:<?php
function mail(){
/* recipients */
$file='/mail/mail.txt';
$mail_dir='/mail/';
$template='/frontend/tpl/mail.html'; // php-документ со вставками <?php print $to[0]['url'] ? > и т. д.
$to = $to[0]['url'];
/* subject */
$subject = "Новости Регион-45";
/* message */
$message = /frontend/resource/NewsPage.php'
/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
/* additional headers */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";
/* and now mail it */
mail($to, $subject, $message, $headers);
}
?>
Посмотри, есть ли тут ошибки на твой взгляд.
Я в PHP пока НОЛЬ.\n\n(Добавление)
Анна
Извините, леди. Мне дали работу на сайте. Его надо поправить.
Сделать более коректным. Но загвоздка оказалась в том, что я не знаю PHP-файлов. И приходится искать помощи? Вот
Передомной стоит задача, сделать автоматическую рассылку. Чтобы новости с сайта уходила на почтовый ящик к пользователю. |
|
|
TvoyWeb |
Отправлено: 18 Февраля, 2005 - 04:14:43
|
Главный здесь
Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003
Откуда: Tashkent Uz
Карма 52
|
victor, во-первых давай уже нормально оформлять код на странице!
victor пишет: Кто кто, а ты то телепат. Я тебе говорил, какя у меня проблема.TvoyWeb
Ты ошибаешься. Я вовсе не телепат и уж тем более не могу упомнить проблемы всех пользователей форума.
victor пишет:Посмотри, есть ли тут ошибки на твой взгляд.
Это одна сплошная ошибка!
Давай попробую объяснить.
Из твоего кода видно, что ты заглядывал в мануал по PHP.
Не знаю понял ты или нет как работает функция mail(), поэтому смотри:
mail(e-mail получателя, тема сообщения, текст сообщения, заголовки письма)
Из четырех аргументов этой функции хочу обратить твое внимание на четвертый «заголовки письма».
В нем содержится необходимая служебная информация.
Вот посмотри на этот заголовок :
CODE: $headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "Content-transfer-encoding: 8bit\r\n";
$headers .= "Date: " . gmdate('D, d M Y H:i:s', time()) . " UT\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: PHP\r\n";
$headers .= "From: $fromname <$frommail>\r\n";
$headers .= "Return-Path: $frommail\r\n";
$headers .= "Reply-To: $fromname <$frommail>\r\n";
В переменную $headers (заголовок письма) занесена вся необходимая служебная информация.
В этом заголовке есть (пока) неопределенные переменные:
$fromname – Имя отправителя, будет показываться в поле «От:» в письме
$frommail – e-mail отправителя, находится под именем отправителя в поле «От:» письма
Эти переменные можно определить выше по скрипту, либо сразу вместо них вписать в заголовок необходимые значения.
Например так:
CODE: ……………………
$headers .= "From: Администратор форума <admin@forum.ru>\r\n";
$headers .= "Return-Path: <admin@forum.ru> \r\n";
$headers .= "Reply-To: Администратор форума <admin@forum.ru>\r\n";
Будем считать что в своем скрипте ты именно так и поступишь (сразу пропишешь эти данные в заголовке - $headers).
После того как ты подготовил все данные в скрипте, ты должен вызвать функцию mail() чтобы отправить письмо.
Вызывается она примерно так: (примерно потому что переменные могут быть названы как угодно)
CODE:mail($tomail, $subject, $message, $headers) ;
В этой функции есть уже знакомая нам переменная $headers, содержание которой мы определили выше.
Остались три неопределенных переменных:
$tomail – переменная с e-mail получателя и, если надо, то с именем получателя.
$subject – тема письма
$messages – собственно само содержание письма (текст сообщения, если угодно)
Вот эти переменные и нужно определить. Вот как это все будет выглядеть:
CODE: <?php
//Определяем необходимые переменные
$tomail - 'tvoemilo@mail.ru';//Здесь можно написать и так: $tomail = 'victor <tvoemilo@mail.ru>';
$subject - 'Ответ на Ваш вопрос';//Тема сообщения
$messages - 'На Ваш вопрос на форуме, есть новое сообщение от TvoyWeb.';
//Определяем заголовок письма
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=windows-1251\r\n";
$headers .= "Content-transfer-encoding: 8bit\r\n";
$headers .= "Date: " . gmdate('D, d M Y H:i:s', time()) . " UT\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n";
$headers .= "X-Mailer: PHP\r\n";
$headers .= "From: Администратор форума <admin@forum.ru>\r\n";
$headers .= "Return-Path: <admin@forum.ru>\r\n";
$headers .= "Reply-To: Администратор форума <admin@forum.ru>\r\n";
//Вызываем функцию mail(), отправляем письмо
if(mail($tomail, $subject, $message, $headers)){//если функция mail() выполнена то выводим сообщение об успешной отправке
echo "Письмо успешно отправлено";
} else {//В противном случае, если возникли какие-то ошибки и письмо не было отправлено, выводим сообщение о неудачной отправке
echo "Во время отправки письма произошла ошибка<BR>Письмо не было отправлено!";
}
?>
Вот тебе рабочий код отправки письма.
Но тебе нужно осуществить рассылку, то есть отправить письма по нескольким адресам.
Что для этого нужно?
1.База e-mail адресов (и имен получателей – не обязательно).
2.Получить в массив данные из этой базы
3.Прокрутить в цикле отправку письма, с заменой значения переменной $tomail. То есть при каждом прохождении в цикле подставлять в эту переменную новый e-mail адрес (и имя – не обязательно) получателя.
Как получить данные из базы в массив, зависит от того, как и где хранится эта база.
К примеру, если база хранится в файле, то в каком формате записаны данные?
Вот так вот.
|
|
|
|
Поиск в теме | Версия для печати |
Страниц (6): [1] 2 3 4 5 6 » |
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0) |
« Форумы » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|