Ru-Board.club
← Вернуться в раздел «Системы управления сайтами»

» Система автоматической рассылки новостей сайта

Автор: FatCat
Дата сообщения: 04.10.2001 21:06
Обещал - придется делать. По просьбе Antuan'а кратко расскажу как сделать у себя на сайте регулярную автоматическую рассылку новостей подписчикам.

Почтовая рассылка вещь полезная. Мое мнение, основанное, на 3х годичном опыте ведения сайта - она все же убирает посетителей в оффлайн. Ее будут читать те, у кого, как правило, нет регулярного доступа в Интернет, а есть только почта (например на работе) и будут ей очень рады. Для нашего сайта рассылка - только один из дополнительных сервисов, причем далеко не самый важный. Но хочется чтобы пользователям было приятно, верно?
Рассылка, понятное дело, имеет смысл только тогда, когда есть что рассылать, т.е. новости появляются: а) регулярно, b) интересные.

Есть разные способы:

- Первый варинт. В самом простейшем случае берется текст новостей, копируется в почтовый клиент и высылается всем подписчикам с помощью собственного мыла. Фуууу.....Это было давно, когда я был еще маленький, глупый и не такой ленивый :)

- Второй вариант. Чуть более сложный вариант - генерить текст новостей в файл, скачивать его к себе и рассылать. Как вариант - использовать Sendmail сервера и слать по списку с его помощью. Можно, впрочем поставить и скрипт и организовать что-то типа варианта 6, о котором я буду писать ниже, но зачем изобретать велосипед?

- третий вариант, которым я пользовался когда стал "чуть постарше" - служба рассылки subscribe.ru (да, да - это реклама :)
Минусы - их реклама в вашей рассылке. Но баннеры терпим у себя на сайте (если только ты не крутой оригинал), переживем и это. Плюсы: а) послал и забыл, никаких возвратов с закрытах e-mail'ов, переполненных ящиков, автоответчиков и т.п.; б) собственная база подписчиков. Например, у меня было 400, после регистарции рассылки в subscribe.ru набежало еще 1600 от них.
Как это делается? Берем вот эту форму - http://win.subscribe.ru/author/issue/ и заполняем все поля (разумеется когда вы завели рассылку, знаете ее код и пароль), жмем кнопку - все уходит подписчикам (не сразу, а по мере того как освободится очередь на сервере, но все же достаточно быстро - несколько часов).

- четвертый вариант. Разумеется, поскольку со временем я стал лениться все больше и больше, такая схема меня стала тоже доставать. Это ж нужно помнить в какие дни заходить, потом верстать туда html-версию и т.п. В итоге - я стал пропускать "сеансы", иногда на день два.
НО! Оказывается у subscribe.ru есть еще одна полезная фича. Переходим к следующему пункту.

- Пятый вариант. У subscribe.ru есть "робот", которой по вашей команде, поданной письмом, заходит по указанному адресу и забирает оттуда подготовленный вами файл, вставляя его в текст рассылки. Понятно что этот файл должен содержать новостную ленту сайта, подготовленную в формате для рассылки (ссылки заменены на абсолютные, переформатирование и т.п.

Письмо шлется на адрес issue@subscribe.ru и должно содержать, как минимум, вот такую последовательность кодов в body:


Код:
@@NAME@@ games.rolemancer // Комментарий - это код нашей рассылки. У кажной рассылки свой код
@@PASSWD@@ ******* // - тут нужно ввести ваш пароль рассылки, иначе робот вас пошлет подальше
@@CHARSET@@ кошка
@@AUTOTEXT@@
@@BEGINHTML@@
[SUBSCRIBE http://www.rolemancer.ru/news/subscribe.html charset=w] //А это страничка, содержащая новости сайта, в win1251
@@ENDHTML@@
Автор: Antuan
Дата сообщения: 04.10.2001 21:16
FatCat

Цитата:
По просьбе Antuan'а кратко расскажу как сделать у себя на сайте регулярную автоматическую рассылку новостей подписчикам.

Спасибо!!
Будем изучать текст...
Автор: NAS
Дата сообщения: 04.10.2001 22:09
Прикол от Subscribe

"Категорически рекомендуется НЕ использовать отправку рассылок
через e-mail"
Автор: Shelter
Дата сообщения: 04.10.2001 23:58
Еще одно спасибо!
ОЧЕНЬ полезная информация. Будем пробовать!
Удачи!
Автор: FatCat
Дата сообщения: 05.10.2001 15:34
NAS

Цитата:
"Категорически рекомендуется НЕ использовать отправку рассылок
через e-mail"


Имеется ввиду высылка текстов рассылки через e-mail на subscribe.ru, я же подаю команду забрать файл. Если сайт недоступен в этот момент - робот рассылку не сделает и пошлет мне письмо-уведомление. Пока такого не было :)

Единственно, рекомендую в письме обязательно явно прописывать кодировку

Код: SUBSCRIBE http://www.rolemancer.ru/news/subscribe.html  charset=w
Автор: FatCat
Дата сообщения: 05.10.2001 15:43
NAS

Цитата:
"Категорически рекомендуется НЕ использовать отправку рассылок
через e-mail"

Ты верен что правильно понял?
Имеется ввиду высылка текстов рассылки через e-mail на subscribe.ru, я же просто подаю роботу команду забрать файл. Если сайт недоступен в этот момент - робот рассылку не сделает и пошлет мне письмо-уведомление. Пока такого не было :)

Единственно, рекомендую в письме обязательно явно прописывать кодировку

Код: SUBSCRIBE http://www.rolemancer.ru/news/subscribe.html  charset=w
Автор: christ4you
Дата сообщения: 05.10.2001 16:49
FatCat

Поместил я себе в mailfile.php твой отрезок кода, но ничего кроме пустого HTML он не пишет. Привожу измененный под мой Нюк код:


Код:
function subscribe() {
$subscribe = "news/subscribe.html";
$file4 = fopen("$subscribe", "w");
$day=7;
fwrite($file4, "<html><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=windows-1251\"><link rel=stylesheet type=text/css href=http://christ4you.org/themes/K-Bix-iceberg/style/style.css></head><body>");
$sub=mysql_query("select sid, aid, title, time, hometext, topic, informant from stories where (TO_DAYS(NOW()) - TO_DAYS(time)) <= $day order by time DESC");
while(list($sid, $aid, $title, $time, $hometext, $topic, $informant) = mysql_fetch_row($sub)) {
$sub2=mysql_query("select topictext, topicimage from topics where topicid=$topic");

list($topictext, $topicimage) = mysql_fetch_row($sub2);
$hometext = nl2br($hometext);
$hometext = ereg_replace("<br>\n<p>","<p>",$hometext);
$content = "<p><b><a href=http://christ4you.org/article.php?sid=$sid>$title</a></b><br><font class=l>$hometext<p><font class=p>$time&nbsp;|&nbsp;<b>Раздел:</b>&nbsp;<a class=m href=http://www.christ4you.org/search.php?query=&topic=$topic>$topictext</a>&nbsp;|&nbsp;<b>Автор:</b>&nbsp;$informant&nbsp;|&nbsp;<a class=m href=http://www.christ4you.org/article.php?sid=$sid&mode=&order=0&thold=0>Прокомментировать</a></font><p></center><hr>";
fwrite($file4, $content);
}
fwrite($file4, "</body></html>");

fclose($file4);
}
Автор: Uniq
Дата сообщения: 05.10.2001 18:22
Я не (Antuan Shelter NAS ), но отвечу. У меня все работает. Есть у меня на сабскрайбе рассылка на 3000 подписчиков, так вот очень запарно было вручную делать хтмл файл, а потом вводить рассылку. Кроном я пока не занимался, но генерация хтмл-файла по коду Фэткэта идет на ура. Вообще, по опытц предыдущего общения с Фэткэтом знаю, что все что он здесь выкладывает, работает.
Автор: christ4you
Дата сообщения: 05.10.2001 18:51
Uniq

Мог бы ты публикнуть переделанный модуль генеражки? Плииииз!
Автор: batva
Дата сообщения: 06.10.2001 07:27
christ4you

Цитата:
Пожалуйста, объясни, как твоя функция генерирует HTML файл, - по дням или каждый раз, когда загружается mainfile.php, или когда постятся новые новости?..


страница генерится когда вызывается sub ultramod
ой сорри функция ультрамод, это же не перл лол.
ну так вот эта функция вызывается при постинге статей.
Только в админцентре ультрамод должен быть включен.


Цитата:
Поместил я себе в mailfile.php твой отрезок кода, но ничего кроме пустого HTML он не пишет. Привожу измененный под мой Нюк код:


судя по тому что он тебе все таки хедер и футер генерит, значит функция вызывается но просто не отрабатывается цикл

Код:
while(list($sid, $aid, $title, $time, $hometext, $topic, $informant) = mysql_fetch_row($sub)) { ***** }
Автор: Pilotoved
Дата сообщения: 07.10.2001 13:03

Цитата:
качестве финального штриха мы генерим в Нюке файл новостей по адресу http://www.rolemancer.ru/news/subscribe.html , содержащий новости за последние 3 дня.


Не знаю, что вы там генерируете, но у меня IE 5.0 оба раз тихо умер, когда я попытался посмотреть эту страницу

С уважением,
Pilotoved
Автор: NAS
Дата сообщения: 07.10.2001 14:29

Цитата:
Не знаю, что вы там генерируете, но у меня IE 5.0 оба раз тихо умер, когда я попытался посмотреть эту страницу


Пора винды переставлять. Все прекрасно грузится, даже на IE 3.
Автор: FatCat
Дата сообщения: 09.10.2001 11:32
Извиняюсь, только вернулся из командировки :)

Насчет "умирает" очень даже странно - там "голый" html для рассылки, таблицы и никаких JS.
Автор: Uniq
Дата сообщения: 11.10.2001 14:08
IMHO, немного нерационально пихать этот код в main. Я вставил в admin.php. Файл тогда генерится только тогда, когда я постю новости, а это как минимум в 100 раз уменьшает количество обращений к базе и запись-перезапись файла :)
А, ФэтКэт? ;)
Автор: batva
Дата сообщения: 11.10.2001 14:17
Uniq

Цитата:
IMHO, немного нерационально пихать этот код в main. Я вставил в admin.php. Файл тогда генерится только тогда, когда я постю новости, а это как минимум в 100 раз уменьшает количество обращений к базе и запись-перезапись файла
А, ФэтКэт?

нет ты не прав.
Код хоть и находится в маин, но вызывается он ведь только при постинге статей. Вот тут первый абзац перечитай.
http://forum.ru-board.com/topic.cgi?forum=28&topic=0270#10

И просто удобнее программить, все функции держать в одном или нескольких файлах.
А пихать их в скрипты правило дурного тона.
Ибо сколько тебе раз придется пихать?
Ведь и при постинге генерить надо, и при редактировании, и при автопостинге и еще пару раз. Посчитай из скольких мест вызывается sub ultramod
Автор: Uniq
Дата сообщения: 11.10.2001 14:25
Ясно. Невнимательно прочитал.
Автор: Uniq
Дата сообщения: 11.10.2001 17:21
Подскажите, как сделать выборку из таблицы по нескольким критериям?
У ФэтКэта:

$sub=mysql_query("select sid, aid, title, time, hometext, topic, informant from stories where (TO_DAYS(NOW()) - TO_DAYS(time)) <= $day order by time DESC");

Мне же нужно, чтобы выборка бралась не из всех новостей, а только определенного топика. При этом надо сохранить выборку из промежутка времени (TO_DAYS(NOW()) - TO_DAYS(time)) <= $day
Автор: Uniq
Дата сообщения: 11.10.2001 17:24
Ответ найден. Вопрос был из серии RTFM :)))
Автор: Uniq
Дата сообщения: 11.10.2001 17:29
http://www.rikatv.kz/subscribe.html

Хак Фэткэта в действии. :)
Автор: FatCat
Дата сообщения: 12.10.2001 19:31
Uniq
Суперски! Теперь настроишь subscribe, cron и забудешь про рассылку навсегда

Кстати, рекомендую css настроить прямо на subscribe.ru, в профиле рассылки, а тут использовать классы из нее.
Автор: Uniq
Дата сообщения: 12.10.2001 20:11
FatCat,
спасибо! Насчет css, я так и сделал
Автор: Uniq
Дата сообщения: 12.10.2001 22:07
It's WORKS!!!!!! Сегодня рассылка пришла всем автоматом, cron - рулез!
Автор: Pilotoved
Дата сообщения: 13.10.2001 23:23
Ув. FatCat, а почему вы не генерите текстовую версию рассылки? IMHO на то, что получается из HTML после конвертирования роботом, смотреть без слез просто невозможно.. По своему опыту знаю, что в text/plain и в text/mime рассылки читает до 25% подписчиков.

Вопрос второй: куда нужно поместить вызов функии subscribe, чтобы содержимое subscribe.html всегда было актуальным?

С уважением,
Pailotoved
Автор: Uniq
Дата сообщения: 14.10.2001 11:38
Я не FatCat, но отвечу :)

В моей рассылке из почти 3000 подписчиков только 125 подписаны на текст. Текст в рассылке приходит вполне удобоваримый, и я вообще не понимаю, почему люди подписываются на текст, если объем у обеих рассылко одинаков почти.

>Вопрос второй: куда нужно поместить вызов функии subscribe, чтобы содержимое subscribe.html всегда было актуальным?

Я поместил в admin/modules/stories.php
Автор: FatCat
Дата сообщения: 14.10.2001 13:07
Pilotoved

Цитата:
Ув. FatCat, а почему вы не генерите текстовую версию рассылки? IMHO на то, что получается из HTML после конвертирования роботом, смотреть без слез просто невозможно.. По своему опыту знаю, что в text/plain и в text/mime рассылки читает до 25% подписчиков.


У нас примерно 10%.
Хотя вроде бы subscribe сама теперь таблички как-то под вид html генерит и ссылки вставляет не внизу, а сразу в тексте. Хмм...надо поэкспериментировать с опытными рассылками и поглядеть будет ли лучше чем у subscribe, если генерить самому.

>Вопрос второй: куда нужно поместить вызов функии subscribe, >чтобы содержимое subscribe.html всегда было актуальным?
>Я поместил в admin/modules/stories.php
Проще добавить mainfile.php в функциию ultramode()
Просто у меня генерятся в ней новости для четырех сайтов, плюс заголовки новостей для форумов.
Просто запихывать все в stories смысла нет, у меня в нее еще html-bulider запихан, да и еще пяток примочек. Проще все функции держать в одном файле и вызывать из него по мере надобности.

Кстати, совет для batva - посещаемый форум раскручивает сайт:


Код:
$content = "<img src=http://www.rolemancer.ru/images/topics/$topicimage height=15 width=15>&nbsp;<a class=m href=http://www.rolemancer.ru/index.php#rolemancer$sid>$title</a><br>\n";
Автор: FatCat
Дата сообщения: 14.10.2001 21:19
Нет, ты знаешь, не вижу особого смысла. Единственное что там "мешает" - это "якорь".

Вот Html - http://subscribe.ru/archive/games.rolemancer/200110/13025840.html
вот автотекст - http://subscribe.ru/archive/games.rolemancer/200110/13025843.text

Намного лучше вряд ли сделаю, да и смысла особоге нет.
Автор: Pilotoved
Дата сообщения: 15.10.2001 02:17
Я немного модифицировал код от FatCat'а и сделал генерацию текстовой версии. IMHO смотрится гораздо приятнее автоконвертированной из HTML.


Код: /******** making text version of newsletter ******/

$subscribe = "news/subscribe.txt";
$file4 = fopen("$subscribe", "w");
$day=3;
$sub=mysql_query("select sid, aid, title, time, hometext, topic, informant from $prefix"._stories." where (TO_DAYS(NOW()) - TO_DAYS(time)) <= $day order by time DESC");
while(list($sid, $aid, $title, $time, $hometext, $topic, $informant) = mysql_fetch_row($sub)) {
$sub2=mysql_query("select topictext, topicimage from $prefix"._topics." where topicid=$topic");
list($topictext, $topicimage) = mysql_fetch_row($sub2);
$hometext = nl2br($hometext);
$hometext = ereg_replace("<a[^>]*href[[:space:]]*=[[:space:]]*\"?[[:space:]]*([^\" >]*)[[:space:]]*\"?[^>]*>([^<]*)</a>","\2",$hometext); # убираем все встречающиеся в тексте гиперссыки, чтобы не портили внешний вид текстовой версии
$content = "$title\r\n$hometext\r\nhttp://www.yourdoamin.com/article.php?sid=$sid\r\n\r\n";
fwrite($file4, $content);
}

fclose($file4);

/*****************************************************/
Автор: FatCat
Дата сообщения: 15.10.2001 15:33
Гммм...а как же без ссылок в тексте? Разве они не нужны?
Автор: Pilotoved
Дата сообщения: 15.10.2001 19:02

Цитата:
Гммм...а как же без ссылок в тексте? Разве они не нужны?


/***IMHO начинается ***/

Итак, cмотрите сами, это текстовый вариант, полученный из HTML:
Код: [http://www.palmq.ru/artile.php?sid=402]Xerox отсуживает у Palm право на
систему рукописного ввода Graffiti
В пятницу апелляционный суд признал правомочными претензии компании Xerox к
компании [http://www.palm.com]Palm о нарушении производителем ручных
компьютеров одного из многочисленных патентов [http://www.xerox.com]Xerox.
2001-10-11 09:01:00 | Тема: [http://www.palmq.ru/search.php?query=&topic=
30]Palm | Автор: Palmqlite | [http://www.palmq.ru/article.php?sid=402&mode=
&order=0&thold=0]комментарии?
Автор: batva
Дата сообщения: 15.10.2001 20:18
Pilotoved

Поддерживаю.
Ссылки не нужны в тексте, кому надо зайдет на сайт в статью и там уже посмотрит ссылки. Вид у письма конечно же лучше, можно читать, или распечатать.
Вообще, рассылка это способ привлечь посетителя на сайт, а не отправить его по сторонним ссылкам. По ссылкам он уже с сайта пусть идет.

Страницы: 12

Предыдущая тема: PhpMyAdmin


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.