Firefox的webmail notifier可用163/126/sina脚本(2010年)

时间:2010-05-05 06:44:27  来源:快乐IT  作者:Eric
个人认为webmail notifier是firefox下体验最为优秀的邮件提醒插件,完全可以代替邮件客户端使用,支持gmail/hotmail/yahoo mail等主流国外邮箱,可以设定check频率,支持同一品牌邮箱多账户登陆(也就是说可以同时查看几个不同的gmail或是其他l账户的新邮件或未读 邮件)。可惜,webmail notifier并不支持国内主流的163、126等邮箱。不过,通过添加自定义脚本同样可以实现163、126、sina等国内邮箱的提醒。

我之前用的netease整合脚本和sina脚本在webmail notifier升级到2.X版本后就失效了。幸好经过努力,昨晚找到了sina的可用脚本,同时请教Mozilla中文论坛上的高手,得到了可用的 netease整合脚本。

现在给出三个脚本,使用方法是复制每个脚本到记事本,另存为js文件,然后添加到webmail notifier里,就可以添加相应的中国邮箱了。

1.netease整合脚本,支持163、126邮箱。原始出处:http://www.firefox.net.cn/forum/viewtopic.php?p=228267#228267
感谢benny2。

将以下内容复制到记事本:

/***********************************************************
网易
***********************************************************/
var name="NetEase";

function init(){
this.loginData=["https://reg.163.com/logins.jsp",
"username","password","product=163&type=1&ursname="];
this.dataURL="http://fm163.163.com/coremail/fcg/ntesdoor2?funcid=getusrnewmsgcnt&fid=1&;addSubFdrs=1&language=0&style=0&template=newmsgres_urs_2008.htm&;username="+this.user;
this.mailURL="http://fm163.163.com/coremail/fcg/ntesdoor2?verifycookie=1&lightweight=1";
var ar=this.user.split("@");
if(ar[1]=="126.com"){
this.dataURL="http://entry.mail.126.com/cgi/ntesdoor?funcid=getusrnewmsgcnt&fid=1&addSubFdrs=1&language=0&style=0&template=newmsgres_urs_2008.htm&username="+this.user;
this.mailURL="http://entry.mail.126.com/cgi/ntesdoor?verifycookie=1&lightweight=1";
}else if (ar[1]=="yeah.net"){
this.dataURL="http://entry.yeah.net/cgi/ntesdoor?funcid=getusrnewmsgcnt&fid=1&addSubFdrs=1&language=0&style=0&template=newmsgres_urs_2008.htm&username="+this.user;
this.mailURL="http://entry.yeah.net/cgi/ntesdoor?verifycookie=1&lightweight=1";
}

this.getCount=function(aData){
var fnd=aData.match(/var\s+res\s+=\s+(\d+);/);
if(fnd){
return fnd[1];
}else{
return -1;
}
};

this.on
Response=function(aHttpChannel){
if(this.stage==ST_LOGIN_RES){
var cookie = aHttpChannel.getResponseHeader("Set-Cookie");
if (this.mailURL.indexOf("yeah.net")!=-1) {
cookie = cookie.replace(/(domain=)\.163\.com/g,"$1.yeah.net");
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var uri=ioService.newURI(this.mailURL,null,null);
this.cookieManager.addCookies(uri,cookie);
}else if(this.mailURL.indexOf("126.com")!=-1) {
cookie = cookie.replace(/(domain=)\.163\.com/g,"$1.126.com");
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var uri=ioService.newURI(this.mailURL,null,null);
this.cookieManager.addCookies(uri,cookie);
}else {
this.cookieManager.addCookies(aHttpChannel.URI,cookie);
}
aHttpChannel.setResponseHeader("Set-Cookie", "", false);
}else{
this.cookieManager.addCookies(aHttpChannel.URI,cookie);
aHttpChannel.setResponseHeader("Set-Cookie", "", false);
}
},


this.onError=function(desc){
this.stage=this.initStage;
this.webMailNotifier.setState(this.id,this.user,nsIWebMailNotifier.ST_RESET);
};
}

2.另外,benny2筒子还给出了单个的163邮箱可用脚本,出处同上。

复制以 下内容到记事本:
/***********************************************************
163.com
***********************************************************/
var name="163.com";

function init() {
this.dataURL="http://fm163.163.com/coremail/fcg/ntesdoor2?funcid=getusrnewmsgcnt&fid=1&;addSubFdrs=1&language=0&style=0&template=newmsgres_urs_2008.htm&;username=";
this.loginData=["https://reg.163.com/logins.jsp", "username","password","product=163&type=1&ursname="];
this.mailURL="http://fm163.163.com/coremail/fcg/ntesdoor2?verifycookie=1&lightweight=1";
}
function getCount(aData) {
var fnd=aData.match(/var\s+res\s+=\s+(\d+);/);
if(fnd) {
return fnd[1];
}else{
return -1;
}
}

3.sina邮箱脚本,支持后 缀名为sina.com的邮箱,不支持vip。原始出处:http://hi.baidu.com/matrix286/blog/item/929ceedb48db35d2b6fd4817.html/cmtid/798b6a38c4fbdfff3b87ce06#798b6a38c4fbdfff3b87ce06
感谢Matrix286.

复制以下内容到记事本:
/**
* Web Mail Notifier for Sina
* by: http://hi.baidu.com/matrix286/
*/

var name = "Sina";
var hostString="sina.com";

function init()
{
WebMailNotifier.prototype.getMailURL = function(aID,aUser,aFolder)
{
var obj=this.getHandler(aID,aUser);
if(obj)
{
/*
* 描述:
* 重写系统原有代码
* 即:if(this.autoLogin) obj.cookieManager.setCookieToBrowser();
* 原因:
* 如果用户没有手动设置“自动登陆” 选项
* 则《Web Mail Notifier》将不会把服务器端响应回来的Coookie
* 即:(SWEBAPPSESSID) 通行证将不会被写入至浏览器。
* 这样会导致用户无法正常登陆。所以这里强制用户自动登陆,也就是强制接受Cookie
* 即: 去掉 if(this.autoLogin) 的判断。
* 直接调用 obj.cookieManager.setCookieToBrowser();
*
*/
obj.cookieManager.setCookieToBrowser();
if(this.newMailsOnly)
{
var url=obj.getMailURL(aFolder);
var pref="accounts."+aID+"."+aUser+".count";
try{
this.prefBranch.getIntPref(pref);//set only if this exists
this.prefBranch.setIntPref(pref,obj.mailCount);
}catch(e){}
obj.mailData.desc=obj.getDesc();
this.setState(nsIWebMailNotifier.ST_MAILDATA,obj.ind);
return url;
}
else
{
return obj.getMailURL(aFolder);
}
}
else
{
return null;
}
}

this.loginData=["http://mail.sina.com.cn/cgi-bin/login.cgi","u","psw"];
}


function onResponse(aHttpChannel)
{
WebMailHandler.prototype.onResponse.call(this, aHttpChannel);
}


function onRedirect(aOldChannel, aNewChannel)
{
var referer = aOldChannel.getResponseHeader("Location");
this.mailURL = referer;
var i = referer.indexOf("//");
var dataURL = referer.substring(0, referer.indexOf("/", i + 2));
dataURL = dataURL + "/classic/maillist.php";
this.dataURL = dataURL;
// dlog(referer);
}

function getCount(aData)
{
var count = 0;
var box = eval('(' + aData + ')');
var data = box.data;
var list = data.maillist;

if (list == null || list.length < 1)
{
// dlog("empty");
return 0;
}

for (var i = 0; i < list.length; i++)
{
var item = list[i];
if (item.isread == false)
{
count++;
}
}
return count;
};

相关文章

文章评论

共有  0  位网友发表了评论 此处只显示部分留言 点击查看完整评论页面