Is there a scheduled e-mail receiving interval AddOn?

Discussion of general topics about Mozilla Thunderbird
Post Reply
Kukulkano
Posts: 8
Joined: July 3rd, 2015, 3:55 am

Is there a scheduled e-mail receiving interval AddOn?

Post by Kukulkano »

Hi,

I'm looking for a Thunderbird AddOn that allows me to schedule the receiving interval of e-mails. For example, such a plan would be great:

* Request e-mails every 2 hours by default.
* Request e-mails every 5 minutes between 8:00 and 10:00.
* Request e-mails every 5 minutes between 12:00 and 13:00.
* Request e-mails every 5 minutes between 16:30 and 18:00.

This would allow me to concentrate more on my e-mail work between specific hours and get less interrupted on other stuff in the rest of the time.

Is there any AddIn that allows me to setup such a scheduled e-mail receiving?

Kukulkano
User avatar
DanRaisch
Moderator
Posts: 127240
Joined: September 23rd, 2004, 8:57 pm
Location: Somewhere on the right coast

Re: Is there a scheduled e-mail receiving interval AddOn?

Post by DanRaisch »

As far as I am aware there are not extensions available for that purpose. Some things are simply a matter of self-discipline.
Kukulkano
Posts: 8
Joined: July 3rd, 2015, 3:55 am

Re: Is there a scheduled e-mail receiving interval AddOn?

Post by Kukulkano »

The AddIn should be exactly for that reason. It helps me on that. It is simply annoying to switch this setting for 5 different e-mail accounts several times a day. And if I stay with 5 minutes, I get many notifications about new e-mails even in my productive times. I need the notifications for the other times. My self discipline fails or is not sufficient here... Too bad that there is no such AddIn.
morat
Posts: 6432
Joined: February 3rd, 2009, 6:29 pm

Re: Is there a scheduled e-mail receiving interval AddOn?

Post by morat »

I wrote a custom button for the custom buttons extension that creates a timer that sets the mail.server.server1.check_time preference to a different value for different times of the day.

https://addons.mozilla.org/en-US/thunde ... ddon/2707/

Instructions:

* install extension
* view > add new button in menu bar
* type Check Time in the "Name" field
* paste the code snippets in the appropriate sections
* click ok to create button
* view > toolbars > customize in menu bar
* drag button to menu bar
* click done
* left click the button to show the Check Time alert
* right click the button to show the context popup

Code: Select all

/*Code*/
var pb = Components.classes["@mozilla.org/preferences-service;1"].
  getService(Components.interfaces.nsIPrefBranch);
var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].
  getService(Components.interfaces.nsIPromptService);
var out = [];
out.push("mail.server.default.check_time : " +
  pb.getIntPref("mail.server.default.check_time"));
var childList = pb.getChildList("mail.server.server", {});
for (var i = 0; i < childList.length; i++) {
  if (childList[i].substr(-10) == "check_time") {
    if (pb.prefHasUserValue(childList[i])) {
      out.push(childList[i] + " : " + pb.getIntPref(childList[i]));
    }
  }
}
out.sort();
var uid = "__unique_identifier_" + this.id;
if (uid in window) {
  out.push("", "Timer Enabled");
} else {
  out.push("", "Timer Disabled");
}
ps.alert(window, "Check Time", out.join("\n"));

Code: Select all

/*Initialization code*/
function setCheckTime() {
  var now = new Date();
  if (now.getHours() ==  8 ||
      now.getHours() ==  9 ||
      now.getHours() == 12 ||
     (now.getHours() == 16 && now.getMinutes() >= 30) ||
      now.getHours() == 17) {
    pb.setIntPref("mail.server.server1.check_time", 5);
  } else {
    pb.setIntPref("mail.server.server1.check_time", 120);
  }
}
var pb = Components.classes["@mozilla.org/preferences-service;1"].
  getService(Components.interfaces.nsIPrefBranch);
var uid = "__unique_identifier_" + this.id;
if (uid in window) {
  clearInterval(window[uid]);
  delete window[uid];
}
setCheckTime();
window[uid] = setInterval(function () {
  setCheckTime();
}, 60 * 1000);
this.onDestroy = function (reason) {
  if (reason == "delete") {
    clearInterval(window[uid]);
    delete window[uid];
    pb.clearUserPref("mail.server.server1.check_time");
  }
};
The button only works with a single server.

i.e. mail.server.server1.check_time preference

You can add the other servers by editing the initialization code.
Post Reply