Октябрь 2010

Рассылка

Как-то мне пришлось сделать рассылку всем кто учился в Павлодарском государственном университете. Мне нужно было это для того чтобы выпускники поздравили с 50-летним юбилеем ПГУ

Что же я сделал для этого?

Мне понадобилось собрать список емайлов всех кто учился в ПГУ. Как же это сделать? Первое что пришло в голову это распарсить социальную сеть «Мой Мир».

Привожу код парсера, который у меня вышел

<?php
error_reporting(0);
set_time_limit(0);

$page = (int)file_get_contents('page');
$mails = array();
foreach  (file('mails') as $g) {
    $mails[] = trim($g);
}
for ($i = $page;  $i <= 844; $i++) {
    file_put_contents('page', $i);
    print 'page ' . $i . "\n";
    flush();
    $c =  file_get_contents('http://my.mail.ru/my/classmates?type_id=4&institute_id=263054&page='  . $i);
    preg_match_all('#http://www\.mail\.ru/agent\?message&to=([a-z0-9_\-\.]+@[a-z]+.ru)#si',  $c, $matches, PREG_SET_ORDER);
    foreach ($matches as $n => $m) {
        if (in_array($m[1], $mails)) continue;
        print '  ' .  $m[1] . "\n";
        flush();
        $mails[] = $m[1];
        file_put_contents('mails', $m[1] . "\n", FILE_APPEND);
    }
}

?>

После парсинга количество емайлов отличалось от реального на 300. Сначала подумал что это моя ошибка. Оказалось это сам майл.ру глючный. Эти емайлы не попали в мой список потому, что в конце некоторых страниц отсутствовал один.(например http://my.mail.ru/my/classmates?type_id=4&institute_id=263054&page=3)

Ну я не расстроился 16 тыс емайлов вполне хватило)
Приступим к рассылке писем:

<?php
error_reporting(0);
set_time_limit(0);

$page = (int)file_get_contents('page');
$mails = array();
foreach (file('mails') as $g) {
    $mails[] = trim($g);
}
foreach($mails AS $m) {
    emailSend($m, 'ПГУ им.С.Торайгырова 50 лет!', 'Событие: ПГУ им.С.Торайгырова 50 лет!
Поздравьте свой университет с юбилеем!
ПГУ будет рад получить от Вас поздравления!
http://psu.kz/index.php?option=com_compliment&act=view

Не забудьте передать ссылку своим друзьям!!! ОБЯЗАТЕЛЬНО
');
    sleep(1);
}

function emailSend($address, $subj, $body)
{
    $address = strtolower($address);
    $from = [email protected]';
    $from_name = 'ПГУ им.С.Торайгырова';

    $body = "$body\n\n--\nПожалуйста не отвечайте на это письмо. Оно было сгенерировано исключительно с целью проинформировать Вас.";
    // =?кодировка?способ кодирования?закодированный текст?=
    $from_name = base64_encode($from_name);
    $subj = base64_encode($subj);
    $subj = "=?UTF-8?B?$subj?=";
    $body = base64_encode($body);

    $headers = "From: =?UTF-8?B?$from_name?= <$from>\r\n"
     . "Return-path: <$from>\r\n"
     . "Content-Type: text/plain; charset=UTF-8\r\n"
     . "Content-Transfer-Encoding: base64";

    mail($address, $subj, $body, $headers);
}

?>

Я на всякий случай поставил задержку в 1 сек между рассылками писем. На рассылку ушло где-то полдня. В течении рассылки поздравило около 20 человек!
Делайте выводы.

Желтая кнопка RSS.

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

Зачем мне RSS?

Если Вам понравился какой-то сайт (блог lexas0ft.ru :) ) и Вы хотите следить за его обновлениями, то делать это можно тремя способами.

  • Запомнить доменное имя (lexas0ft.ru) и периодически заходить на сайт
  • Занести сайт в закладки и периодически заходить на него
  • Подписаться на RSS и узнавать об обновлениях, не заходя на сайт

С первыми двумя все понятно, а третий вариант – самый удобный.

Сейчас объясню. В Интернете можно найти много программ, которые называются агрегаторами rss-лент. Например: FeedDemon.

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

Кроме того, большинство программ сами получают новые статьи и показывают Вам их в окне программы (заходить на сайт не нужно). Теперь о том, почему это все называется RSS.

Что такое RSS?

RSS – это аббревиатура от Really Simple Syndication, то есть «Действительно Простая Синдикация». RSS – это просто формат, в котором хранятся и передаются программам–агрегаторам данные. Формат основан на XML. Ну детали рассказывать – скучновато будет, поэтому кому надо – могут прочитать здесь подробности: http://ru.wikipedia.org/wiki/RSS.

Теперь переходим к практике.

Как подписаться на RSS?

Для подписки на RSS-ленту необходимо иметь две вещи – программу-агрегатор и адрес ленты.

В качестве программы можно использовать как отдельное windows-приложение (FeedDemon и др.), так и online-сервис (http://lenta.yandex.ru/help.xml) или google reader.

Адрес ленты можно узнать на сайте, на ленту которого хотите подписаться. Обычно на этот адрес указывают желтые кнопки или другие похожие значки с символикой RSS.

Мой адрес – http://feeds.feedburner.com/LEXASOFT.

Так что пользуйтесь RSS – это очень экономит время :)

На эту страницу пришли с кейвордами:

Регистрация блога в Technorati.

BDZVF8NM45NY! Добавил вчера свой «LEXASOFT — Записки кодера» в жирный буржуйский каталог блогов Technorati, а на мыло пришло вот такое письмо:

Thank you for submitting your blog claim on Technorati. Technorati will need to verify that you are an author of the site http://lexas0ft.ru/ by looking for a unique code. We have just assigned the claim token BDZVF8NM45NY to this claim. Please visit http://technorati.com/account/ for more details, including how to use the claim token.

Зашел в акк не нашел подробных инструкций, почитал FAQ на сайте и понял что они требуют чтобы в моем фиде был код BDZVF8NM45NY. Вот держите этот код BDZVF8NM45NY!

QR-ссылка
QR Code for   2010  Октябрь
Показуха

TwitterCounter for @LEXASOFT

Рейтинг блогов

Яндекс.Метрика