|
|
|
| Добрый вечер!
На странице выводится инфо предприятия, в т.ч ФИО директора, e-mail
И таких предприятий на сайте тысячи, всех их нужно проиноформировать о новых услугах.
Я дошел пока только до того, что нажав на ссылку e-mail открывается почтовая программа the bat уже с вклеенным письмом
Все остальное приходится делать в ручную: копировать и вставлять в письмо Имя отчество директора и ссылку на страницу его предприятия.
Уверен, что есть и другие более продвинутые пути оповещения.
Прошу подсказать. | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 20:17)
| | Вы можете отправить письмо прямо с сервера (если конечно, это настроено) при помощи функции mail
<?php
mail("somebody@somewhere.ru", "Тема", "Тело письма");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 20:30)
| | если в моем примере - открывается почтовая программа, то что произойдет в вашем примере на стороне пользователя? если пользователь нажмет на ссылку e-mail | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 21:08)
| | если у вас вся инфа по предприятиям есть в бд, то тогда с помощью цикла while()
<?
$abra = mysql_query("SELECT * FROM table");
$kadabra = mysql_fetch_array($abra);
while($kadabra = mysql_fetch_array($abra))
{
mail($kadabra['mail'],"Тема письма","Сюда массивами $kadabra[] подробнее перечисляем что за новые услуги");
}
?>
|
1000 предприятий получат уведомление за 1 секунду :) | |
|
|
|
|
|
|
|
для: ladan
(10.01.2012 в 21:57)
| | это быстрее. но письмо должно быть персональным, в него нужно вложить еще и ссылку на конкретную страницу page.php?id_pu= и ФИО директора | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 22:09)
| | У вас наверняка в таблице с e-mail-ами имеются данные для персонального обращения, можно будет не только подставлять $kadabra['mail'] вместо первого параметра функции mail(), но и значение персональную информацию в тело письма в третьем параметре. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 22:14)
| | где разместить это скрипт и как он запускается?
Мне нужно проинформировать от силы пару раз всего.
Если есть страница, выходящая инфо предприятия согласно id_pu, то, наверняка, предложенный вариант информирования не стоит размещать на отдельной странице.
Или стоит, надо же вытаскивать id_pu этого предприятия? | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 22:21)
| | без разницы где вы разместите код, письма отправятся всем, начиная с id_pu=1 и заканчивая до id_pu=1000 | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 22:21)
| | >где разместить это скрипт и как он запускается?
>Мне нужно проинформировать от силы пару раз всего.
Где хотите, главное, чтобы пользователи и роботы не получали к нему доступ. Т.е. директорию где он лежит лучше закрыть паролем, если это в силу причин невозможно, то лучше его загружать на сервер только в момент рассылки, а потом удалять.
>Если есть страница, выходящая инфо предприятия согласно id_pu, то, наверняка,
>предложенный вариант информирования не стоит размещать на отдельной странице.
>Или стоит, надо же вытаскивать id_pu этого предприятия?
Такая страница обычно осуществляет запрос по поводу одного предприятия, а вам нужен цикл по предприятиям, тут лучше создать запрос извлекающий все предприятия, информацию о них, их электронный адрес и формировать рассылку в цикле. Причем чтобы не радовать людей раньше временем своим творчеством, лучше разбить задачу на две части - формирование цикла и тела писем (пусть пока сохраняются в файл) и тестовая отправка писем на один адрес (свой), чтобы видеть в каком виде письмо приходит. Потом, когда будете довольны результатом, наработки можно объединить. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 22:27)
| | Где хотите, главное, чтобы пользователи и роботы не получали к нему доступ. Т.е. директорию где он лежит лучше закрыть паролем, если это в силу причин невозможно, то лучше его загружать на сервер только в момент рассылки, а потом удалять.
а не достаточно будет закрыть доступ через .htaccess? | |
|
|
|
|
|
|
|
для: Slo_Nik
(10.01.2012 в 22:33)
| | а мне кажется быстрее будет закомментировать скрипт :)) | |
|
|
|
|
|
|
|
для: ladan
(10.01.2012 в 22:34)
| | а потом, когда потребуется, надо будет лезть на сервер и раскомментировать... )))
получается, что не быстрей... | |
|
|
|
|
|
|
|
для: ladan
(10.01.2012 в 22:34)
| | Вообще лучше, конечно, запаролить. Рано или поздно все-равно скрипт забудут удалить или закомментировать и на клиентов посыпятся тонны обращений, которые регулярно будут инициировать поисковые системы и спам-боты, а ругать все будут разработчиков :))) и надо сказать не без оснований. | |
|
|
|
|
|
|
|
для: Slo_Nik
(10.01.2012 в 22:33)
| | >а не достаточно будет закрыть доступ через .htaccess?
Проблема в том, что если его закрыть .htaccess запусить из браузера его будет невозможным, запускать его придется при помощи другого PHP-скрипта, который тоже нужно будет обезопасить от пользователей и роботов... в общем так не долго свалиться в бесконечную рекурсию :)))
PS Если же речь идет о пароле на директорию, то да, это и имеется в виду. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 22:37)
| | нет, я имел ввиду первый вариант (((
получается, что вариант с установкой пароля оптимальный и это скрипт рассылки не должен быть связан с остальными файлами?
значит если нужна рассылка, зашёл под паролем, разослал и ушёл...? | |
|
|
|
|
|
|
|
для: Slo_Nik
(10.01.2012 в 22:42)
| | Безопаснее всего держать рассылку писем под паролем, со спамерами до сих пор идет позиционная война, хостеров за спам их клиентов могут лишить лицензии, поэтому с этим делом нужно быть крайне аккуратным. Часто сначала по голове дают и лишь потом слушают объяснения. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 22:37)
| | ну создам я отдельный php файл, закину в пароленную директорию admin
только не понимаю как он запускается?
Или он запустится сразу как будет создан? Если так то надо его и удалять сразу или там кнопку можно вывести "Отправить письма"? | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 22:47)
| | можно сделать так, чтоб запускался по нажатию кнопки
<form action="" method="post">
<input name='name' type="submit" value="Отправить письма">
</form>
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
}
?>
|
| |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 22:47)
| | Вы наберете его в строке запроса http://.../admin/mail.php, он и запустится. А лучше ссылку или кнопку добавить, которые будут его запускать. | |
|
|
|
|
|
|
|
для: cheops
(10.01.2012 в 22:58)
| | спасибо. пошел писать код | |
|
|
|
|
|
|
|
для: Василий
(10.01.2012 в 23:16)
| | Прошу указать на ошибки
<?
<form action="" method="post">
<input name='name' type="submit" value="Отправить письма">
if(isset($_POST['name']))
{
/* пошел цикл отправки */
$abra = mysql_query("SELECT * FROM from pu WHERE approved='1'");
$kadabra = mysql_fetch_array($abra);
while($kadabra = mysql_fetch_array($abra))
{
$address = $kadabra["mail"];
$subject = "Здесь тема письма";
$message = "Тут будет текст";
$link = "http://www.page.php?id_pu="; echo $kadabra["id_pu"];
mail($address,$subject,$message,$link);
}
}
</form>
?>
|
| |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 00:26)
| |
<?
$address = $kadabra["mail"];
$subject = "Здесь тема письма";
$message = "Тут будет текст \n http://www.page.ru?id_pu=".$kadabra['id_pu']."";
mail($address,$subject,$message);
?>
|
| |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 00:26)
| | Вот интересно, с какого перепугу Вы обработчик вставили в форму? | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 01:42)
| | исправил.
<form action="" method="post">
<input name='name' type="submit" value="Отправить письма">
</form>
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
$abra = mysql_query("SELECT * FROM from pu WHERE approved='1'");
$kadabra = mysql_fetch_array($abra);
while($kadabra = mysql_fetch_array($abra))
{
$address = $kadabra["mail"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://www.page.php?id_pu=".$kadabra['id_pu']."";
mail($address,$subject,$message);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 01:44)
| | Да, кстати, обработчик рекомендую прописывать перед формой.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 01:58)
| | что вы имеете ввиду под словом обработчик здесь?
зачем здесь должен быть обработчик, нажал кнопку, письма отослал и все. | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 02:03)
| | А что это по Вашему? или опять в несознанку начинаете играть?
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
$abra = mysql_query("SELECT * FROM from pu WHERE approved='1'");
$kadabra = mysql_fetch_array($abra);
while($kadabra = mysql_fetch_array($abra))
{
$address = $kadabra["mail"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://www.page.php?id_pu=".$kadabra['id_pu']."";
mail($address,$subject,$message);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 02:25)
| | При нажатии "ОТПРАВИТЬ"
на следующие строки
$kadabra = mysql_fetch_array($abra);
while($kadabra = mysql_fetch_array($abra))
|
выходит сообщение
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in....
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ....
|
| |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 09:56)
| |
$abra = mysql_query("SELECT * FROM from pu WHERE approved='1'");
|
У вас запрос неправильный, отсюда ошибки | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 09:56)
| | строчку $kadabra = mysql_fetch_array($abra); удалите | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 11:30)
| | переписал
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
$res = mysql_query("SELECT * FROM from example WHERE approved='1'");
while($myrow = mysql_fetch_array($res))
{
$address = $kadabra["email"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
mail($address,$subject,$message);
}
}
?>
|
на эту строчку указыает
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 15:43)
| | удалите одно из двух FROM from в самом запросе | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 15:52)
| | спасибо.
теперь нажимаю "ОТПРАВИТЬ" и все. Писем нет.
Надо как отчет написать о проделанной работе. Отправлены ли письма вообще? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:01)
| | что значит "писем нет"? вы откуда отправляете то? С сервера рабочего или на денвере тестируете? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 16:03)
| | Все работает. Спасибо.
Как отчет все же выводить?
Плюс отправитель - Nobody nobody@yutex13.yutex.ru
Можно ли прописать свой ящик? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:07)
| | вставьте в цикл
echo $kadabra["email"];
что выдаете в браузер? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 16:15)
| | список e-mail адресов в строчку без пробелов и запятых | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:18)
| | а вообще откуда у Вас берется значение $kadabra["email"] - что за массив? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 16:22)
| | отсюда
$res = mysql_query("SELECT * FROM example WHERE approved='1'");
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
|
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
$res = mysql_query("SELECT * FROM example WHERE approved='1'");
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://11klassniki.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
mail($address,$subject,$message);
echo $myrow["email"];
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:24)
| | и в спаме нет писем? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 16:29)
| | вы видно не заметили. я писал, что все работает. письма приходят.
Как отчет все же выводить о проделанной работе?
В отправителе писем стоит Nobody nobody@yutex13.yutex.ru - email хостера
Можно ли прописать свой ящик? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:32)
| | да, это четвертый параметр функции к примеру может выглядеть так "From: webmaster@$SERVER_NAME"
также Вы можете отправлять резервную копию на свой емайл. Ну и сама функция возвращает true, если отправка с сервера прошла успешно и false если не отправилось. | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 16:32)
| | делайте проверку
<?php
/* предыдущий код */
if(!mail($address,$subject,$message)){
echo "Письмо не ушло )))";
}
else{
echo "Спам успешно отправлен!!!";
}
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 16:39)
| |
<form action="" method="post">
<input name='name' type="submit" value="Отправить письма">
</form>
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
include ("../blocks/bd1.php");
$res = mysql_query("SELECT * FROM example WHERE approved='1'");
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
mail($address,$subject,$message);
if(!mail($address,$subject,$message, "From: 11@mail.ru\r\n"
."Reply-To:11@mail.ru\r\n")){
echo "Письмо не ушли )))";
}
else{
echo "Спам успешно отправлен!!!";
}
}
}
?>
|
1) Спам успешно отправлен - выходит столько раз, сколько писем отправлено. Как чтобы один раз только выходило, как итог
2)
Письма теперь приходят дважды. От - Nobody <nobody@yutex13.yutex.ru> и от 11@mail.ru | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 18:35)
| |
$address = $myrow["email"];
$subject=" в нашем каталоге";
$header="Content-type: text/html; charset=\"windows-1251\"";
$header.="From: Почта <mail@mail.ru>";
$header.="Subject: ".$subject;
$header.="Content-type: text/html; charset=\"windows-1251\"";
$message = "Cсылка на вашу страничку\n http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."
<p> <strong>Здравствуйте!</strong></p>
страничка сформирована не полностью или указаны не точные данные:</p>
<p>то просим выслать:<br>
• Логотип (в формате JPEG или TIFF);<br>
• Полное и сокращенные наименования заведения</p>";
mail($address, $subject, $message, $header);
|
Пытаюсь чтобы сообщение было в HTML форме, но отправляется с кодами.
Как можно записать html в другом файле и сделать ссылку на $message (чтобы не загромождать код)? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 19:26)
| | думаю никак, в саму $message пишите то, что нужно отправить, html теги не будут работать в письмах, для переноса строки используйте \n | |
|
|
|
|
|
|
|
для: ladan
(11.01.2012 в 21:07)
| | добро.
Письма дублируются. От - Nobody <nobody@yutex13.yutex.ru> и от 11@mail.ru
Это решаемо? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 21:27)
| | да
Я в качестве $header использую вот что:
$headers = "From: site.ru <admin@site.ru>\r\ncontent-type:text/plain; charset=utf-8\r\n";
|
В первой части $header идет обратный email отправителя и после \r\n кодировка письма, чтоб карякули не приходили. У меня все отлично работает, ничего не дублируется | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 21:27)
| | сделайте, дублирвоаться не должно
<?
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
$headers = "From: site.ru <admin@site.ru>\r\ncontent-type:text/plain; charset=utf-8\r\n";
$b = mail($address,$subject,$message,$headers);
}
if($b) echo "Письма ушли"; else echo "Письма не ушли";
?>
|
| |
|
|
|
|
|
|
|
для: ladan
(11.01.2012 в 21:37)
| |
<?
if(isset($_POST['name']))
{
/* пошел цикл отправки */
include ("../blocks/bd1.php");
$res = mysql_query("SELECT * FROM example WHERE approved='1'");
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
$subject = "в нашем каталоге";
$message = "Тут будет текст\n http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
$headers = "From: Газета <11@mail.ru>\r\ncontent-type:text/plain; charset=utf-8\r\n";
$b = mail($address,$subject,$message,$headers);
}
if($b) echo "Письма ушли"; else echo "Письма не ушли";
while($myrow = mysql_fetch_array($res))
{
$address = $myrow["email"];
$subject = "Здесь тема письма";
$message = "Тут будет текст\n http://page.ru/post_pu.php?id_pu=".$myrow['id_pu']."";
$headers = "From: Газета <11@mail.ru>\r\ncontent-type:text/plain; charset=utf-8\r\n";
$b = mail($address,$subject,$message,$headers);
}
if($b) echo "Письма ушли"; else echo "Письма не ушли";
?>
|
Что-то здесь не так
Parse error: syntax error, unexpected $end in | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 22:18)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 22:25)
| | исправил
Теперь выходит так: "Письма ушлиПисьма ушли" - дважды
Тема: ???? ??????? ????????? ? ????? ????????
ОТ ?????? 11 ????? <11@mail.ru>
В самом письме ??? ????? ????? | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 22:39)
| | а вот это уже кодировка ....
проверяйте , что выходит из базы, к каком виде, в каком виде попадает в письмо....
ну Вы вкурсе... о поэтапной проверке скрипта ))) | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 22:44)
| | Slo_Nik, вы неповторимы ))) | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 22:48)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.01.2012 в 22:50)
| | поменял на charset=windows-1251 и все работает.
всем спасибо | |
|
|
|