Тема закрыта
Страницы: 1
Здравствуйте. Я переделал скрипт для mail.ru. Работающий скрипт имеет вид:
function initHandler(handler){
handler.name="mailru";
handler.dataURL="http://win.mail.ru/cgi-bin/auth";
handler.loginData=["http://win.mail.ru/cgi-bin/auth",
"Login","Password","Domain="+encodeURIComponent("mail.ru")];
handler.mailURL="http://win.mail.ru/cgi-bin/auth";
handler.getData=function(aData){ //aData is a html source in dataURL
var fnd=aData.match(/\u043c: <b>(\d+?)<\/b>/); //find mail count
if(fnd){
var num = fnd[1]; //get mail count here
return num;
}else{
return -1;//display 'not checked' message
}
};
}
Но для Яндекса по такой же аналогии скрипт не проверяет количество писем на почтовом ящике:
function initHandler(handler){
handler.name="yandexru";
handler.dataURL="http://mail.yandex.ru/cgi-bin/auth";
handler.loginData=["http://mail.yandex.ru/cgi-bin/auth",
"Login","Password","Domain="+encodeURIComponent("yandex.ru")];
handler.mailURL="http://mail.yandex.ru/cgi-bin/auth";
handler.getData=function(aData){ //aData is a html source in dataURL
var fnd=aData.match(/\u043c: <b>(\d+?)<\/b>/); //find mail count
if(fnd){
var num = fnd[1]; //get mail count here
return num;
}else{
return -1;//display 'not checked' message
}
};
}
Подскажите пожалуйста, что я сделал не так? :-)
Отсутствует
кто вам сказал, что при простом изменении домена этот скрипт будет работать? он выдирает количество новых сообщений прямо со страницы почты, к тому же, система авторизации на яндексе устроена совсем иначе.
Отсутствует
Неработающий скрипт как бы и так предполагает, что простое изменение домена не помогло. Это даже мне, ни разу не скриптостроителю, ясно.
Спасибо за дельный совет
Буду прям: как поправить скрипт для майла, чтобы он работал под яндексом?
Заранее спасибо.
Отсутствует
Вроде как этот вариант более правильный, а всё равно нет уведомлений о приходе писем:
function initHandler(handler){
handler.name="yandexru";
handler.dataURL="http://passport.yandex.ru/passport?mode=auth&retpath=http://mail.yandex.ru";
handler.loginData=["http://passport.yandex.ru/passport?mode=auth&retpath=http://mail.yandex.ru",
"Login","Password","Domain="+encodeURIComponent("yandex.ru")];
handler.mailURL="http://passport.yandex.ru/passport?mode=auth&retpath=http://mail.yandex.ru";
handler.getData=function(aData){ //aData is a html source in dataURL
var fnd=aData.match(/\u043c: <b>(\d+?)<\/b>/); //find mail count
if(fnd){
var num = fnd[1]; //get mail count here
return num;
}else{
return -1;//display 'not checked' message
}
};
}
Отсутствует
При нахождении в папке Входящие (а логин автоматом туда приводит) эту информацию можно взять из заголовка таба и окна
--- ---
Отсутствует
Находит непрочитанные сообщения по шабону, типа "(<b>2323</b>)".
Не стал проверять что будет если новых сообщений нет.
Что бы однозначно определить количество непрочитанных надо искать русскую фразу. С русской кодировкой возиться не стал, оставил простой шаблон по тегам.
На сегодняшний день работает и ладно.
function initHandler(handler) { handler.name = 'yandex'; handler.dataURL = 'http://mail.ya.ru/'; handler.mailURL = 'http://mail.ya.ru/'; handler.loginData = ['https://passport.yandex.ru/passport?mode=auth', 'login', 'passwd', 'retpath=http://mail.yandex.ru/']; handler.getData = function(aData) { try { var str = aData.match(/">\(<b>\d+<\/b>\)/); if(str) { return String(str).match(/\d+/); } return 0; } catch(err) { return 1000; } return 2000; }; }
Отсутствует
Не проще ли делать такие вещи опрашивая непосредственно POP3 сервер?
Непослушные локоны горничной выбивались из-под её кружевного фартука...
Отсутствует
А у меня для yandex'a, почему-то не работает. Нет уведомления о новой почте.
Может кто подскажет в чем проблема...
Отредактировано GOR70 (13-09-2009 16:32:49)
Отсутствует
Сделал скрипт для яндекса. Вроде работает
Не знаю как заmatch'ить русские символы, повозился - не получилось.
/*********************************************************** yandex 2009-12-06 ***********************************************************/ function initHandler(handler) { handler.name = "Yandex"; handler.dataURL = "http://mail.yandex.ru/"; handler.loginData = ["https://passport.yandex.ru/passport", "login", "passwd", "mode=auth&retpath=http://mail.yandex.ru"]; handler.mailURL = "http://mail.yandex.ru/"; handler.getData = function(aData) { //Не знаю как match'ем ловить русские символы и пробелы, поэтому вместо них .* и \s соотвественно. //Есть нечитанная почта. //<title>Входящие (1 / 127) — Яндекс.Почта</title> var fnd = aData.match(/<title>.*\s\((\d+)\s\/\s\d+\)\s.*<\/title>/); if (fnd) return fnd[1]; //Нечитанной почты нету. //<title>Входящие (127) — Яндекс.Почта</title> fnd = aData.match(/<title>.*\s\((\d+)\)\s.*<\/title>/); if (fnd) return 0; return -1; } }
Отсутствует
Вышла новая версия Webmail Notifier - старый скрипт не работает.
Таки разобрался с русскими буквами
/*********************************************************** yandex 2010-01-01 ***********************************************************/ var name="Yandex"; function init() { this.dataURL = "http://mail.yandex.ru/"; this.loginData = ["https://passport.yandex.ru/passport", "login", "passwd", "mode=auth&retpath=http://mail.yandex.ru"]; this.mailURL = "http://mail.yandex.ru/"; } function getCount(aData) { //Есть нечитанная почта. //<title>Входящие (1 / 127) — Яндекс.Почта</title> // В х о д я щ и е ( 1 / 127) var fnd = aData.match(/<title>\u0412\u0445\u043E\u0434\u044F\u0449\u0438\u0435\s\((\d+)\s\/\s\d+\)\s.*<\/title>/); if (fnd) return fnd[1]; //Нечитанной почты нету. //<title>Входящие (127) — Яндекс.Почта</title> fnd = aData.match(/<title>\u0412\u0445\u043E\u0434\u044F\u0449\u0438\u0435\s\((\d+)\)\s.*<\/title>/); if (fnd) return 0; return -1; }
Отсутствует
Тема закрыта
Страницы: 1