Send Later

Thunderbird Extension

Send Later logo

Schedule email messages to send later

Introduction

The Send Later Thunderbird add-on allows you you to write an email message and then tell Thunderbird when you want it to be sent. The message is saved into your Drafts folder, and delivered at approximately the specified time. The add-on is available for download from addons.thunderbird.net. Release notes for each new version of Send Later are published there and on GitHub. What follows is a user manual for the add-on. Everything below (except for the installation section) assumes that you've already installed the add-on and restarted Thunderbird.

If you have any comments, questions, or feedback about the add-on, please get in touch.

This user manual is written for Thunderbird 78 or newer. Things might be slightly different for older versions.

Installation

Method 1

  1. In Thunderbird, open the extension manager with the Tools > Add-ons menu-bar command or Add-ons from the hamburger menu in the upper right corner of the main Thunderbird window.
  2. Enter "Send Later" in the search box and hit Enter.
  3. Find the "Send Later" add-on in the search results and click the "Add to Thunderbird" button. Click "OK" when prompted.
  4. Recommended: restart Thunderbird when it's done installing.

Method 2 (use only if Method 1 doesn't work)

  1. Download the add-on as an ".xpi" file from addons.thunderbird.net, saving it to your Desktop or another obvious location.
    • Note: download the file using Right click > Save link as, otherwise your web browser might think you are trying to install a browser extension.
  2. In Thunderbird, select the Tools > Add-ons menu-bar command or Add-ons from the hamburger menu.
  3. From here you can either drag-drop the .xpi file into Thunderbird, or click the gear icon at the top of the page, select Install Add-on From File..., and browse to the path of your downloaded .xpi package.
  4. Recommended: restart Thunderbird after the add-on is installed.

Basic usage

When you want to schedule a message for later delivery, either select the File > Send Later menu command in the message composition window, or hit Ctrl-Shift-Enter, or click on the "Send Later" button in the composition window's toolbar. This will pop up the following dialog:

Send Later prompt window

Here is what you can do from this dialog:

Time-of-day and day-of-week restrictions

You can also specify time-of-day and day-of-week restrictions for when your message will be delivered.

These restrictions have different (but, I hope, somewhat intuitive) effects based on what kind of scheduling you are doing:

Saving defaults

You can save whatever settings you enter here as the default settings for when you bring up this dialog in the future, or clear previously saved defaults, by making the appropriate selection above the big scheduled send button.

You can do some pretty fancy things with this. For example, if you enter "now" in the text box and check that you only want the message to be delivered between 9:00am and 5:00pm Monday through Friday, and then save those as your defaults, then whenever you pop up the dialog, the default behavior will be to send the message now or reschedule it for when it is during business hours. Nifty, eh?

The "Put in Outbox" and "Send Now" buttons

As noted above, the "Send Now" button in the Send Later dialog causes the message to be sent immediately, i.e., it bypasses the scheduled send process, and the "Put in Outbox" button causes the message to be put directly into the Thunderbird Outbox, also bypassing the scheduled send process, but in a different way.

What happens when you schedule a message?

When you schedule a message for delivery, it is saved in your Drafts folder with the necessary scheduling information embedded in it. If you wish to reschedule a message later, just edit the saved draft and do "Send Later" again to specify the new send time. If you wish to cancel a scheduled message delivery, edit the draft and save it normally without "Send Later" (or just send it immediately, if that's what you want to do), and the scheduling information will be removed.

Date formats

The part of Send Later that interprets the send times you type into the text box is pretty smart. You're welcome to type a full date and time, e.g., "10/4/2012 3:00pm", if you want to, but it isn't actually necessary. In addition to making intelligent guesses about the parts you leave out, the interpreter also understands quite a few neat shortcuts. Here are some examples, but they don't include everything, so when in doubt, try it out, and see if it works!

See this page for more examples. These apply in all of the languages that Send Later supports, not just in English. If you encounter something you think the add-on should understand but doesn't, let us know.

Preferences

You can get to the add-on's preferences page in two ways:

  1. Click on "Send Later" in the status bar at the bottom of your main window and select "Send Later preferences" from the pop-up menu. The preferences will open in a new tab.
  2. Select "Add-ons" from the hamburger menu or the Tools menu. The extension manager will open in a new tab. Click on "Send Later", and then on the "Preferences" tab.

Here is the main preferences screen, followed by explanations of the various settings:

Check every  #  minutes

This preference controls how often the add-on checks for messages whose delivery time has arrived. The default, once per minute, is adequate for most people. In rare cases, you may need to use a higher value (lower frequency) if you have a very large number of messages in your Drafts folder and the Send Later status indicator at the bottom of your Thunderbird window is constantly "Checking".

"Send" does "Send Later"

If it is enabled, this preference causes the scheduling dialog to pop up not only when you run the "Send Later" command, but also, when you run "Send", whether it's by clicking the "Send" button, selecting File > Send Now, or typing Ctrl-Enter. It'll therefore prevent you from accidentally sending a message now that you meant to schedule for later. This feature is not enabled by default.

Note that this preference and the following one are mutually exclusive.

"Send" delays messages by:  #  minutes

If enabled, this preference causes all messages you send by clicking Send or typing Ctrl-Enter to be automatically scheduled to be sent by Send Later at the specified number of minutes into the future.

This essentially replicates the functionality provided by some email providers to allow you to cancel sending a message for a short period of time after it is sent. If you sent a message and then change your mind before the delay time has elapsed, you can simply find the message in your Drafts folder and either delete it (if you don't want it to be sent at all) or open it for editing, which automatically cancels the scheduled send.

Note that this preference and the previous one are mutually exclusive.

Mark scheduled drafts as read

By default when Send Later saves a scheduled messages into your Drafts folder, it marks the message as "read" so that your Drafts folder doesn't show up in the folder list as having unread messages in it. If you prefer for scheduled Drafts to show up as "unread" to remind you that they're there, then uncheck this preference.

Bind Alt-Shift-Enter instead of Ctrl-Shift-Enter

This preference causes the pop-up Send Later dialog to be bound to the key sequence Alt-Shift-Enter instead of Ctrl-Shift-Enter. When this feature is activated, Ctrl-Shift-Enter reverts to the original Thunderbird functionality, i.e. depositing the message into the Outbox.

Show Send Later Column

This preference controls whether a column showing the scheduled delivery times of messages that have them is displayed when viewing a Drafts folder.

Show Send Later Header

This preference controls whether the Send Later schedule should be displayed alongside the "From" "Subject" and "To" fields when viewing messages that have Send Later headers.

Show Send Later in Status Bar

This preference controls whether the add-on shows its current status in the Status Bar at the bottom of the Thunderbird window. The number of pending scheduled messages, or "IDLE" is displayed if there are none.

Trigger unsent message delivery from Outbox

This preference controls whether the add-on actually sends messages when their delivery time arrives, or rather should just deposit them into your Outbox and leave them there until the next time you send unsent messages as described above. You might want to disable this setting if you use some other add-on to manage your message delivery. See the Caveats section below for more information about this.

Enforce time and day restrictions at delivery time

As described below, Send Later supports restrictions on the time of day and day of the week when recurring scheduled messages are delivered. These restrictions are enforced when a message is scheduled, i.e., the scheduled send time of a message will never violate the time and weekday restrictions specified for that message.

Having said that, this preference controls what happens when a message isn't delivered at its scheduled time because Thunderbird isn't running or your computer is asleep, and then when Thunderbird wakes up, the current time violates the time and/or weekday restrictions on the message. By default, when this preference is disabled, Send Later delivers late messages immediately even in violation of their time/weekday restrictions. In contrast, when the preference is enabled, the add-on waits until the time/weekday restrictions are satisfied before delivery.

Don't deliver messages more than  #  minutes late

This preference controls what happens when Send Later encounters a message that was scheduled to send some time in the past. This can happen if Thunderbird was closed, or the computer was asleep at the actual scheduled time. If this option is disabled, those messages will be sent immediately next time Send Later is able to do so. If this option is enabled, then Send Later will pop up a warning about any such messages and leave them for you to reschedule by editing the relevant draft message by hand.

Shortcut buttons

In addition to these main settings, you can change the behavior of the shortcut buttons. Each of these buttons is bound to a dynamic function, which by default is set to perform a simple delay. However, you can choose any dynamic function you'd like, or write your own using the dynamic function editor, described below. Each button can pass different arguments to the dynamic function, thereby enabling you to reuse a single function for multiple shortcuts.

The shortcuts can be accessed from within a message composition window using the keyboard commands Ctrl+Alt+1, Ctrl+Alt+2, andCtrl+Alt+3, or from within the scheduler popup dialog using Ctrl+1, Ctrl+2, and Ctrl+3.

Send Later shortcut preferences

Dynamic function editor

You can create and edit your own scheduling and recurrence functions by writing JavaScript code in the function editor. See the documentation on dynamic scheduling functions for how these functions work.

The interface allows you to select an existing function to edit, or create a new one. You can input a function name, the body of the function, and a block of help text in the following fields.

You can test your function by entering input values in the test area, including a date/time, which will be passed as the prev argument, and a set of arguments, which will be parsed into an array and passed as the nextargs variable to your function. The specnameinput variable will always correspond to the name of your function. The Execute function button will evaluate your function using those inputs, and display its outputs and any error messages in the adjacent output box.

Note that the builtin functions cannot be edited, but they can be copied/pasted into new functions. They provide a good starting point for creating your own scheduling functions.

Advanced configuration editor

Note, this applies to Send Later's internal settings. For global Thunderbird settings, see the section below

There are some preferences which do not have corresponding UI elements in the options dialog. Also, there are occasions where you just need fine-grained control over your preferences. The advanced configuration editor allows you to modify all of Send Later's preferences manually, using JSON-formatted input. Hopefully the interface is pretty self explanatory, but I highly recommend avoiding this feature unless you know what you're doing.

Thunderbird's Config Editor

Note, this applies to global Thunderbird settings. For Send Later's internal settings, see the section above.

Options which are internal to Thunderbird itself can be modified directly using Thunderbird's Config Editor. To open the editor, first open Thunderbird's main menu (three horizontal bars in the upper right of the main window), then choose Preferences. In the General section of the preferences tab, scroll to the bottom and choose Config Editor.... Click the "I'll be careful, I promise!" button, if it asks you to.

Console log level

Controls how much detail you want to see in the debug console. Setting this to "Debug", "Trace", or "All" will make Send Later very chatty, and can actually start to slow down Thunderbird over time as the debug log gets very long. I recommend leaving this on the default "Info" level unless you need to investigate the source of a bug.

Reset preferences

Resets all preferences to their default state. Will prompt for confirmation before proceeding, but cannot be undone without manually setting everything again by hand.

Caveats and known issues

Some things to keep in mind:

  1. Whenever Send Later delivers a scheduled message, any other messages pending delivery in your Outbox will also be delivered. This is assuming Send Later is configured to deliver unsent messages at send time (see the "Trigger unsent message delivery from Outbox" preference).
  2. Scheduled drafts are locked to a particular Thunderbird profile and will only be delivered by a Thunderbird running against the same profile that originally scheduled them. This means that if you use Thunderbird on multiple computers to schedule messages, you need to keep it running on all of those computers for the messages to be delivered. You can "transfer" a draft from one profile to another if need be by editing and rescheduling it.
  3. If you use distribution lists within Thunderbird and you add a distribution list to a message and then Send Later, the list will be expanded when you schedule it, not when it is sent. Any changes you make to the list between when you schedule the message and when it is sent will not be reflected in the sent message.
  4. Attachments are frozen when messages are scheduled to be sent. In other words, if you attach a file to a message, then schedule the message with Send Later, then modify the file on disk before the scheduled message is sent, your modifications will not be included in the sent message. This is also true with recurring messages — when a recurring message is sent and automatically rescheduled, Send Later does not capture a new version of the attached files.
  5. Outgoing message format preferences (Preferences > Composition > Send Options...) do not work with Send Later.
    Note: this may no longer be the case, but I haven't checked lately. If you do experiment with it let me know the results.
  6. I have been told by multiple people that messages sent from or to iCloud or me.com accounts never appear in the recipient's inbox even though Thunderbird says they were sent successfully. Please note that this is not a bug in Send Later or Thunderbird, it's a problem with iCloud. Apparently, Apple thinks it's OK to run a mail server which arbitrarily and completely silently discards valid email messages with no notification to either the sender or recipient that this has occurred (this is discussed by others on the internet, e.g.: here, here, here, here). I have tried, unfortunately without success, to find a fix or workaround for this problem. The only possible fix I've been able to find — and I'm not actually sure it works — is to check your account settings and confirm that the outbound SMTP configuration in Thunderbird for your iCloud account matches the settings Apple says you should be using.
  7. Send Later does not work with ExQuilla, because Send Later depends on being able to put messages into your local Outbox and then send them with the "Send Unsent Messages" command, but "Send Unsent Messages" is not implemented in ExQuilla. If you would like to see Send Later work with ExQuilla, I suggest you contact the maintainers of ExQuilla and ask them to make sending messages to ExQuilla from the local Outbox work properly; the more people ask, the more likely it is that they will fix this problem. Send Later does work with Owl for Exchange, the add-on which is intended to replace ExQuilla, when configured as described below.

Send Later doesn't work with mail servers that discard its "X-Send-Later" headers

Some mail servers (most notably, but not exclusively, Microsoft Exchange used through its IMAP gateway) prevent Send Later from working by discarding the X-Send-Later headers that it uses to keep track of message scheduled delivery times. You can tell that this is happening if you schedule a message for delivery, but there are no X-Send-Later- headers when you view the message with View > Message Source (Ctrl+U).

To work around this problem, you need to store your drafts for the affected account in some other Drafts folder, e.g., the one underneath Local Folders. You can set this preference by going to Edit > Account Settings... or Hamburger menu > Account Settings... and viewing the Copies & Folders page for the affected account.

Please note: for Microsoft Exchange in particular, this workaround is only valid when you are accessing Exchange as a generic IMAP server, not when you are using ExQuilla, which as noted just above is incompatible with Send Later anyway.

Thunderbird must be running for scheduled messages to be sent

You need to keep Thunderbird running (and your computer turned on!) for Send Later to be able to send scheduled messages (note that on Mac OS, "running" means there must be at least one main Thunderbird window open; Send Later will not work if the Thunderbird app is running but doesn't have any open windows). It runs within Thunderbird, which means that when you exit from Thunderbird, it's not around to check for messages to be sent. If you fail to leave Thunderbird running over the delivery time of one or more messages, then those messages will be delivered shortly after the next time you start Thunderbird. Note that there are various methods and tools for waking up your computer automatically at a pre-specified time, in case you don't want to keep it running constantly until it's time to send the messages. For Windows, for example, see: [1], [2], [3]. For Linux, see [1]. You can schedule your Mac to wake up automatically by opening System Preferences and clicking on "Energy Saver" and then "Schedule". Alternatively, see below for a description of how to run Thunderbird on a server to deliver your messages for you.

Or you can consider using a third-party service that holds and delivers scheduled messages for you, instead of Send Later. See, for example:

The list of sites above is provided for informational purposes only; it should not be construed as an endorsement of any of these services. I don't use them and don't know how well they work or how trustworthy they are.

Return receipts don't work

If you enable the Return Receipt option on a message you are composing, and then you schedule the message to be sent later, when it is sent, no return receipt will be requested. Unfortunately, fixing this requires significant changes to the internal architecture for how scheduled messages are sent, and the changes are difficult since the core Thunderbird components involved are completely undocumented, so I don't know when I'll be able to find the time to fix the problem. In the meantime, here's a workaround (thanks to about.com):

  1. Open the Thunderbird options dialog with Edit > Preferences...
  2. Scroll to the bottom of the "General" page to the Config Editor... button click the "I'll be careful, I promise!" button if it asks you to.
  3. Enter "mail.compose.other.header" in the filter box.
  4. Double-click on the mail.compose.other.header setting and set it to "Disposition-Notification-To". If it already has a non-empty value, add a comma and then "Disposition-Notification-To" to the end of it.
  5. Quit from and restart Thunderbird.
  6. When you are composing a message for which you want a return receipt and which you want to schedule to be sent later, then click on an empty line in the message header in the compose window, select "Disposition-Notification-To" in the drop-down, and then enter your email address as the value of the header.

If you want to automatically request a return receipt for every message you send, so that you don't have to do it manually each time you schedule a message to be sent later, do the following (thanks to MozillaZine):

  1. Open Thunderbird's configuration editor (described above).
  2. Enter "useremail" in the filter box and scan through the matches to find the email address of the account which you want to generate return receipts. Remember the "id#" for that account, where "id#" here and below means the characters "id" followed by a number which is different for each of your configured accounts.
  3. Enter "mail.identity.id#.headers" to find out if there are already custom headers configured for the account. If not, then right-click in the settings area to create a new string setting with that name.
  4. Put "receipt" as the value of the setting if it's empty, or append ",receipt" to the end of the existing value.
  5. Create a new string setting called "mail.identity.id#.header.receipt", and set its value to "Disposition-Notification-To: address", where address is the email address to which you would like return receipts sent.

Thunderbird hangs frequently on Windows

Note 1: I don't know if this is still a problem, but I'm leaving it here in case it does come up again.

Note 2: One way to avoid any laggy behavior in Thunderbird is to ensure that the Send Later option "Console log level" is set to "Info" (or "Warn", "Error", or "Fatal"). High debug log activity seems to bog Thunderbird down over time.

A number of Send Later users on Windows have reported that when they have Send Later installed, Thunderbird periodically hangs for annoyingly long periods of time during normal use of the application.

This is not actually a bug in Send Later — there is nothing Send Later does that should cause Thunderbird to hang, and some Thunderbird users on Windows have reported this issue even without Send Later installed — but whatever the problem is, Send Later does seem to exacerbate it for some people.

I heard two different potential explanations for this behavior, one anecdotal (i.e., I have been unable to confirm it) and one definitive.

First, the definitive one: If you have "Allow Windows Search to search messages" enabled in the General tab of your Thunderbird options, try turning it off and see if that solves the problem. It appears that the Windows Search indexer sometimes holds extended locks on files that Thunderbird uses, and Thunderbird hangs while waiting for the files to become available.

The other possibility is that your real-time antivirus scanner is doing the same thing as the Windows Search indexer, i.e., holding a lock on a file that Thunderbird uses while scanning it for viruses. You can check if this is the case by temporarily disabling real-time protection and seeing if the Thunderbird hangs go away. The "temporarily" is important — you don't want to permanently disable real-time protection, since it's important to protect your computer from viruses!

If this does turn out to be the problem, then the people who develop and support Thunderbird recommend excluding Thunderbird mailbox files from antivirus scanning, if your antivirus software has real-time protection (i.e., scans files when they are created, opened, or executed), as most modern antivirus software does. Their reasoning behind this recommendation is that mailbox files are never executed directly, so viruses lurking in mailbox files are not a threat. They only become a threat when they are saved separately by Thunderbird when you ask it to open or save an attachment. As long as your antivirus software scans those saved attachments in real-time, it is not dangerous to disable scanning of mailbox files. If you do decide to do this, then you need to identify the location of your Thunderbird profile folder, and tell your antivirus software to exclude the "ImapMail" and "Mail" subdirectories of that folder from scanning. You may also wish to exclude "global-messages-db.sqlite*" in that folder.

Two notes about this:

  1. If your antivirus software does not have real-time protection, or if it has it but you have it turned off, then I personally do not recommend excluding Thunderbird mailbox files from your scheduled antivirus scans.
  2. The recommendation above for excluding Thunderbird mailbox files from scans comes from the Thunderbird team, not from me. See their wiki for more information. I am not endorsing this recommendation; I'm just passing it on.

Something to keep in mind is that the size of your Thunderbird files is contributing to the problem. Larger files take longer for antivirus products to scan. You may have large files in your Thunderbird profile for several reasons, including: you have folders containing many messages that you have configured to store local copies; you have many messages across your entire account and you have the global search feature enabled, since that means the global search index file will itself be very large; you have folders that haven't been compacted in a very long time so they have a lot of wasted space in them their local storage files; you have an old Thunderbird profile which as a result has index files that have a lot of wasted space in them. Given these possibilities, here are some ideas that might help reduce the size of the files in your profile and thereby reduce the duration of hangs:

Another option, which we list separately from the bulleted list above because it is still in the experimental phase (at least as of when this paragraph was written in September 2016), is to switch to Maildir storage, which stores each incoming messages in a separate file. Be careful about this, however, because although it mostly works, as I just noted it isn't yet fully supported.

If you encounter this issue and come up with a solution that works and is different from the solutions outlined above, please let us know!

Errors you might encounter

"Error sending unsent messages"

If you're reading this section, it's probably because you got a pop-up alert that said this (or the equivalent in another language):

Send Later: Error copying scheduled message to Outbox for delivery (code %x). Send Later has been disabled!

This means that Send Later encountered an error when attempting to copy a scheduled message from your Drafts folder to your Outbox for delivery. Because of this error, it's possible that things are in an inconsistent state, such that the message in question is in your Outbox and your Drafts folder at the same time. If this is the case, then there is a risk that Send Later will keep trying to send it over and over again every minute, and as a result many copies of the message could end up being sent. To prevent this from happening, Send Later disables itself temporarily, by setting the "Check every  #  minutes" preference to 0, disabling the message send process.

You should:

  1. Check your Outbox (under Local Folders) to see if there is a scheduled message stuck there waiting to be sent. If so, and the message looks complete, run run File > Send Unsent Messages to send it. If the message looks incomplete, delete it.
  2. If there was no message in your Outbox, or if it was incomplete and you deleted it, then you're probably fine. Skip to step 4.
  3. Otherwise, check your Drafts folder to see if there's another copy there of the message that you just sent from your Outbox, and if so, delete it from Drafts (unless it's a recurring message, in which case you should open and reschedule it for the next time you want it to be sent).
  4. Change the "Check every  #  minutes" preference to a non-zero value.
  5. If the problem persists, follow these instructions for repairing a corrupt Outbox.
  6. If the problem persists after that, let us know.

Corrupt drafts folder

If you're reading this section, it's probably because you got a pop-up alert that said something like this (or the equivalent in another language):

Send Later: Folder URL-of-Drafts-folder may be corrupt. Please open its properties and repair it.

The root cause of this issue is actually an intermittent Thunderbird bug which sometimes causes folders to become corrupted; it is not due to a bug in Send Later, but the add-on is warning you about it so you can fix the underlying issue and keep the add-on working properly for you. If you are able to determine from the error message which Drafts folder is corrupt, and you can see that folder in the Thunderbird folder list, then do just what the error pop-up says: right-click on the folder, select "Properties", and click on the "Repair" button. If that doesn't fix the problem, or if it isn't obvious which folder is causing the problem, then do the following:

  1. Open a compose window.
  2. Add an email address and some text to the draft, just so that it's not totally empty.
  3. Iterate through all of the identities, i.e., the email address / account combinations you are able to select in the drop-down next to "From:".
  4. For each identity, click "Save" to save the draft in the drafts folder for that identity. This will force Thunderbird to create the Drafts folder if it doesn't already exist.
  5. When you're done, close the compose window and delete the draft from the last Drafts folder. Thunderbird should have already been smart enough to remove it from the others as you iterated through them.
  6. When all that is done, repair all of the drafts folders as described below.

If this doesn't fix the problem for you, then ask for help.

Advanced usage

Hot keys

You can hit Ctrl-1, Ctrl-2, or Ctrl-3 in the scheduler pop-up to activate the first, second or third preset key, respectively. Pressing the Esc key in the pop-up to cancels scheduling and returns to editing the message. You can hit Enter from anywhere in the pop-up to send the message at the specified time, i.e., hitting Enter is equivalent to clicking the "Send Later at [specified time]" button. You can hit Alt-Shift-N in the pop-up (or the equivalent in other languages) to send the message right now, (i.e., it is equivalent to clicking the "Send Now" button), or Alt+Shift+O to place the message in the outbox.

In the composition window itself (i.e., not in the Send Later pop-up dialog), you can hit Ctrl-Alt-1, Ctrl-Alt-2, or Ctrl-Alt-3 to activate the corresponding shortcut action.

Recurring messages

You can schedule a message to be sent repeatedly by selecting "minutely", "daily", "weekly", "monthly" or "yearly" in the scheduling pop-up. Immediately after Send Later delivers the message, it calculates a new delivery time based on the frequency you specified and saves a new draft back into your Drafts folder with the new delivery time. This will continue for as long as you leave the message in your Drafts folder with recurrence enabled. To stop the message from being delivered anymore, remove it from your Drafts folder, or edit the draft and save it without scheduling.

When you select one of the recurrence options, the Send Later dialog changes slightly to look something like this:

New controls appear in the dialog. Exactly what new options appear depends on which recurrence type you have selected.

Here are some things to keep in mind about recurring messages:

Time/date restrictions on recurring messages

When you schedule a recurring message, you can optionally enable restrictions on the time of day and day of week when the message is delivered. By default, these restrictions are enforced when each recurring instance of the message is scheduled but not when it is delivered, so if a message is delivered late because Thunderbird wasn't running or your computer was asleep at the messages scheduled time, then the message will be sent immediately when Thunderbird wakes up even if the current time falls outside the time or weekday restrictions. If you would like these restrictions to be enforced at delivery time as well, there's a preference for that.

Mail Merge add-on

The Mail Merge add-on supports Send Later. The following documentation for using Send Later with Mail Merge is courtesy of Alexander Bergmann, the author of Mail Merge. Thanks very much to Alexander for adding this feature to his add-on!

Mail Merge has a "Date" field in the Mail Merge Dialog as part of the "Mail" section, which is visible if the user selects "Save As Draft" as "Deliver Mode" and Send Later is installed and activated. If you put a valid date in the "Date" field, then Mail Merge will tell Send Later to deliver the message at the specified date, just as if you scheduled it with Send Later directly. The "Date" field also supports variables! So it is possible to use a column "Date" (or "Time" or whatever you like to name it) with different dates for each recipient in the CSV. (Or if you want to use the Address Book, you probably will want to use Custom1 to Custom4 for this purpose.) In the "Date" field of the Mail Merge Dialog, you usually want to use something like this:

{{Date}} {{Time}}
(There are probably other use cases with different variables as well.)

Owl for Exchange add-on

The Owl for Exchange add-on allows Thunderbird to send and receive email through a Microsoft Exchange Server account. Send Later can be made to work with Owl for Exchange, but only if you configure an SMTP server for outbound messages. Please read on for an explanation and additional details.

When you configure a "normal" (i.e., not Exchange) internet email account in Thunderbird you specify two servers for the account: the inbound server, an IMAP or POP3 server, where your email should be fetched from, and the outbound server, an SMTP server, through which the messages you compose are delivered.

Microsoft Exchange does support IMAP and SMTP, so if the administrator or your Exchange server has enabled them, you could configure Thunderbird to treat your Exchange server as a normal internet email account and not use Owl. However, you may need to use if your administrator has not enabled IMAP and SMTP, or you want to take advantage of additional Owl features such as its Exchange address book integration.

The code for the Thunderbird message compose window knows how to send messages via Owl, so when you compose a message interactively and click the Send button it is sent successfully. However, the code that delivers message via the Thunderbird Outbox code does not know how to send messages via Owl, so when an Owl message is put into your Outbox and then Thunderbird tries to deliver it, it doesn't work. Unfortunately, Send Later uses the Outbox to deliver messages.

However, there is a workaround. SMTP servers can be configured in Thunderbird independent of email accounts, so if you have access to an SMTP server — either because your Exchange administrator has enabled SMTP on the server, or because there is some other SMTP server you use — then Thunderbird can use that SMTP server to deliver Owl messages, and all is well. Well, sort of. There are some caveats you need to be aware of.

IMPORTANT: Because email messages sent interactively through Owl go directly through Exchange while messages sent through Send Later go through SMTP, the headers of the two messages will be different an an astute observer will be able to figure out through deductive reasoning and a careful examination of the headers that the message was sent by Send Later, i.e., that it was not written at the time it was sent. Depending on why you are using Send Later to delay messages, this may or may not be something you care about.

If you have multiple email accounts configured in Thunderbird, some of which are Owl accounts and some of which are IMAP/SMTP accounts, and you don't do anything special to configure your Owl account for SMTP, then when you send a message via Send Later Thunderbird will deliver it through your default SMTP server, which is usually the first SMTP server that was added to your Thunderbird profile. For example:

The SMTP server may not allow the message to be sent through it if the sender address doesn't match the domain the SMTP server is intended to be used for. In that case the SMTP server will reject the message and the send will fail. Obviously, for Owl and Send Later to work you need to use an SMTP server that will allow you to send messages from your Owl email address through it.

To add an SMTP server to your Thunderbird profile independent of adding a full email account:

  1. Open Account Settings.
  2. Click on "Outgoing Server (SMTP)" on the left.
  3. Click "Add".
  4. Fill out the server details and click "OK".

If this is the only SMTP server in your profile, it will become the default and will be used for Owl messages sent via Send Later. The first time a message is sent that way you will be prompted for the server password, and you should tell Thunderbird to save it if you want Thunderbird to be able to send scheduled messages in the future without prompting you for a password.

To change which SMTP server your Owl account uses for Send Later messages:

  1. Open Account Settings.
  2. Click on "Manage Identities…"
  3. Select the identity for your Owl account and click "Edit…"
  4. Near the bottom of the window where it says "Outgoing Server (SMTP)", click on the pop-up menu and select the SMTP server you want to use.
  5. Click "OK".

Dynamic functions for complex scheduling rules

The scheduling functionality built into Send Later is quite flexible, but sometimes you may want to implement more complex scheduling rules.

For example, the most common request I've received is for Send Later to have a button which tells it, "Send this message at the start of the next work day," so that people can do work during off hours without their clients / customers / colleagues knowing that they're doing so.

To satisfy this need, Send Later allows you to write your own code — or import code written by others — that implements arbitrarily complex scheduling rules. These scheduling rules are called dynamic functions, and you manage them in the Dynamic function editor section of Send Later's options page.

The editor contains three sample functions called BusinessHours, DaysInARow, and Delay, as well as an informative function called ReadMeFirst with a big comment in it explaining what your code should do. The sample functions cannot be edited, but they provide instructive examples that you can build on, and can be easily copied into a new function of your design.

In fact, the BusinessHours function is an implementation of the "Send this message at the start of the next work day" logic I've been asked for so many times!

Using dynamic scheduling functions

There are two ways to use a dynamic scheduling function

  1. First, you can pick the function you want to use from the "function" recurrence option in the scheduling popup. Selecting the recurrence option "function" enables a drop-down menu with the names of all existing functions (the samples described above, and any of your own custom functions).

The function will be passed whatever date/time is specified above as its "previous" occurrence, or null if the date/time input field is blank.

Some functions (including the BusinessHours function mentioned above), accept arguments to customize their behavior. When you select the "function" recurrence option, a text box is displayed that allows you to specify those arguments.

Any help text associated with the function can be shown by clicking the "function help text" link next to the function name drop-down menu.

The "Send At …" button will indicate the outputs of your selected function.

As noted above, if you need to use the same settings repeatedly, you can select "Save these values as the defaults" so you don't have to enter them over and over; this works for scheduling with functions just like it does for entering a single send time explicitly or using one of the recurrence options.

  1. The other way you can use dynamic functions is by binding them to one or more of the shortcut buttons. These can be specified in Send Later options page, by selecting the desired function from the corresponding drop-down menu.

You can even specify arguments to be passed to the function. For example if you specify BusinessHours with arguments [0, 1, 2, 3, 4], [9, 0], [17, 0], then that shortcut button will schedule messages to be sent between 9:00am and 5:00pm Sunday through Thursday (see the help text for the BusinessHours function for an explanation of how to interpret those arguments).

You may not need to reinvent the wheel. Take a look at the library of dynamic functions contributed by other Send Later users. Also, consider sharing the functions you create! That page has instructions there for adding to the library.

Dynamic recurrence

In addition to supporting arbitrary logic for scheduling a message once, dynamic functions can also support arbitrary logic for sending messages multiple times, i.e., for recurring messages. This is very powerful functionality, but it's also a bit complicated, so bear with me while I walk you through it.

A dynamic function implements recurrence by putting a recurrence specification string in the nextspec variable before the function returns. The recurrence specification does one of two things: either it specifies a recurrence type that Send Later knows how to handle internally, after which the dynamic function is "out of the loop" for subsequent deliveries of the message and doesn't get called again; or it tells Send Later to continue calling it each time the message needs to be rescheduled.

The internal recurrence types, which correspond to the options in the Send Later dialog, are as follows:

In addition, after one of the primary recurrence specifications shown above, the function can include any of the following modifiers in the specification string:

If, on the other hand, your function wants Send Later to call it repeatedly to do the scheduling, then it should set nextspec to "function " + specname. This specification string can also use the between and on modifiers shown above, but not the / modifier.

If your function takes arguments that control its behavior and/or keeps state between invocations, then those need to be assigned as an array to the nextargs variable before your function returns.

If the function knows that the message it was just asked to schedule is the last one, then it should simply not set nextspec to anything (i.e., leave it null), and Send Later will use the final send time it provided and then not schedule the message any further.

Suppressing scheduled message delivery

If you set the "Check every  #  minutes" option to "0", then Send Later won't deliver scheduled drafts when their time comes; it'll just leave them in your Drafts folder as if their delivery time has not yet arrived.

In case you are wondering what use this might have… One clever Send Later user decided to eliminate the requirement for Thunderbird to be running all the time to deliver scheduled messages, by writing an independent service to scan for and deliver scheduled messages from his IMAP Drafts folder. Unfortunately, if he happened to be running Thunderbird when a draft was scheduled to be sent, then Thunderbird and his service might have tried to deliver the same draft at the same time, thus causing unpredictable behavior and/or duplicate messages. This is avoided by disabling Send Later from actually sending later, and only using it for its scheduling functionality.

Server-side Send Later

(This is very advanced usage. It can be complicated to set up, and things could go embarrassingly wrong if you mess it up. Proceed at your own risk.)

If you want scheduled drafts to be sent even when your computer is shut down or Thunderbird isn't running, and you have access to a server somewhere on which you can keep Thunderbird running all the time, here's how you can set things up to have scheduled messages sent via that server.

  1. Use IMAP, not POP3, to access the email account in question. Otherwise, Thunderbird can't store your scheduled drafts on the mail server and the server-side Thunderbird won't be able to read and send them.
  2. Install Thunderbird on the server.
  3. If you can, set up the server to log you in automatically when it reboots, to start Thunderbird automatically when you log in, etc. I.e., do as much as you can to ensure that Thunderbird will stay running all the time.
  4. Configure your email account into Thunderbird on the server. Important: see below for a very important note about configuring accounts and identities on different computers.
  5. On the client, set "Check every … minutes" to "0" as described above.
  6. On the client, use the advanced config editor to find the value of the preference instanceUUID. Copy the value into a text file or save it in some other way.
  7. On the server, use the advanced config editor to set instanceUUID to the value you copied from the client.

After you follow these steps, the client will stop sending out scheduled messages, and the server will start sending them out instead, since you've tricked it into thinking it is the same "instance" of Send Later as the client.

Note: If you use Send Later on multiple clients, e.g., on a desktop and a laptop, then you can make the value of instanceUUID the same on all of them so long as "Check every … minutes" is set to 0 on all but one of the clients (i.e., the one that you keep running all the time).

Remember that this only works if Thunderbird stays running on the server. Don't forget to keep an eye on it and restart it if it shuts down. If you want to be especially careful, you can schedule a recurring message to yourself as a simple monitor — if you don't receive the recurring message at the scheduled time, you know that Thunderbird on the server has stopped running and you can log in and restart it.

Accounts and identities on different computers

When you compose a draft message, Thunderbird inserts special, hidden settings into the message indicating the account and identity used to compose the draft. Although you don't see them in the user interface, Thunderbird assigns numerical identifiers to accounts and identities; these numerical identifiers are what gets put into the hidden settings in the draft message. You can see these identifiers by looking in your prefs.js file (Help > Troubleshooting Information, click on the button to open your profile directory, and load the file prefs.js in that directory into a text editor) for lines containing mail.identity.id and mail.account.account.

When you only use Thunderbird on one machine, you never have to worry about what those hidden identifiers are. However, when you try to share accounts between multiple Thunderbird installations, and you have more than one account and/or identity configured, then you will run into problems if the identifiers for the accounts and identifiers are different. In particular, if you configure things as described above to schedule messages from one computer and send them from another, and the account or identity numbers don't match on the two computers, then the scheduled messages will be sent from the wrong identity and/or account.

There are several ways to avoid this problem:

  1. Back up your Thunderbird profile from one computer and restore it on the other, thus guaranteeing that the account and identity configuration on the two computers will match. This is harder than it sounds because there are file paths hard-coded in various locations in your profile, mostly in prefs.js, that will need to be updated if your profile is in a different directory on the second computer. A tool like MozBackup may help with this, but it only runs on Windows and it may not fix everything it needs to when the profile is restored.
  2. Create a new Thunderbird profile on the second computer, then quit out of Thunderbird there without configuring any accounts, load the new profile's prefs.js into a text editor, and copy all the mail.account*, mail.identity.*, mail.server.*, and mail.smtp*, lines from your old prefs.js file to the new one, omitting any lines that have hard-coded file paths in them. Then restart Thunderbird on the new computer and log into all the accounts and send test messages from all your identities so that Thunderbird's password manager can save all the necessary passwords.
  3. Edit prefs.js by hand (with Thunderbird not running!) on one of the computers to swap around the numbers for all the accounts, identities, servers, and SMTP servers so they match the numbers on the other computers. Editing prefs.js is dangerous, and this is not for the faint of heart, and make sure you save a backup copy you can restore if you screw things up!

Making "Send" do "Send Later" only some of the time

You may be in a situation where some of the time, you want to make sure to schedule every message you send, while other times, you want to send messages right away. For example, you might catch up on work late at night, but letting your clients know that might give them the incorrect impression that you don't mind if they call you at god-awful hours :-).

Most cases like this can be handled with dynamic scheduling functions, but if you need to do something even more complex, then userChromeJS can help. The userChromeJS add-on allows you to add arbitrary JavaScript code and functions to your Thunderbird installation. Here's how you do that:

  1. Install the userChromeJS add-on.
  2. Find the userChrome.js file created by userChromeJS. It will be in the chrome subfolder of your Thunderbird profile folder.
  3. Using your favorite text editor, add the code you want to userChrome.js, then exit from and restart Thunderbird.

Here's an example of code you can put in userChrome.js to solve the problem above, i.e., you want the "Send" button to do "Send Later" after hours:

``` {style="font-size: 125%;"} // Set up a timer to call a function every five minutes to check // whether we want the "Send" button to actually do "Send Later".

// This is the function that the timer will call. var SendButtonPrefCallback = { notify: function(timer) { var now = new Date(); // Sunday or Saturday var weekend = now.getDay() == 0 || now.getDay() == 6; // Before 9am var early = now.getHours() < 9; // After 5pm var late = now.getHours() > 4; // Put it all togther var do_popup = weekend || early || late; // Set the appropriate Send Later preference var prefService = Components .classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); prefService.setBoolPref("extensions.sendlater3.sendbutton", do_popup); } }

// This is the variable that the timer will be stored in. var SendButtonPrefTimer = null;

// Now set up the timer. if (! SendButtonPrefTimer) { SendButtonPrefTimer = Components.classes["@mozilla.org/timer;1"] .createInstance(Components.interfaces.nsITimer); SendButtonPrefTimer.initWithCallback( SendButtonPrefCallback, 300000, Components.interfaces.nsITimer.TYPE_REPEATING_SLACK ); }

// Note: This timer's going to run in every open Thunderbird window, // but there really isn't any harm in that, so it's easier to just let // that happen then to try to figure out how to make it run in only // one window. ```

Checking for scheduled messages more than once per minute

If you need to control when messages are sent with smaller granularity than one minute, you can tweak the Send Later configuration options to specify more exactly how often to check for scheduled messages:

  1. Open the Send Later options page.
  2. Set your "Check every … minutes" value to 0.
  3. Open the "Advanced configuration editor", and find the line with "checkTimePref_isMilliseconds": false. Change the value to true, and click the "Save" button at the bottom of the panel.
  4. Set the "Check every …" option to whatever timeout you'd prefer, this time in milliseconds rather than minutes (note that the option label text will still say "minutes").

Important notes:

Troubleshooting

Messages don't send or send multiple times

Are you using the add-on correctly?

If scheduled messages get moved into your Outbox (underneath Local Folders) at the scheduled send time but don't get delivered from there, then the first thing to do is confirm that you haven't told Send Later not to deliver messages. Open Send Later's preferences (click "Send Later" at the bottom of the main window and select "Send Later preferences" from the menu) and make sure the box next to "Trigger unsent message delivery from Outbox" is checked. It is checked by default, so if it isn't, then you unchecked it for some reason, and you should check it and click "OK" to save the change. Then, to cause past messages that were previously put into the Outbox to be delivered, select the File > Send Unsent Messages menu command. If that's not the problem, then read on.

Another common mistake when using the add-on is clicking on the "Put in Outbox" button rather than the "Send at …" button.

If you instead click the 'Put in Outbox" button below it, then you're not scheduling the message for later delivery, you're putting it directly into the Outbox to be sent the next time you do File > Send Unsent Messages or the next time Send Later delivers a separate scheduled message, since every time Send Later delivers a message, all pending messages in the Outbox are delivered.

Make sure you are using the add-on properly and its preferences are set correctly before proceeding with the following troubleshooting steps.

If scheduled messages are going into your Drafts folder but not moving into your Outbox at the scheduled time, then check if your mail server is discarding the Send Later headers, as described above. If not, then proceed with the following troubleshooting steps.

Messages not being sent: isolating the problem

If Send Later fails to deliver messages at the scheduled time, or if scheduled messages are delivered repeatedly, the two most likely causes are corrupt Drafts folders and a corrupted Outbox folder. A corrupted Outbox may even cause Thunderbird to crash when it tries to deliver scheduled messages. Note that corrupted folders are not Send Later's fault… There are bugs in other parts of Thunderbird, which can cause folders to become corrupted.

If your messages aren't being delivered properly, then please perform the following two diagnostic tests to isolate exactly where the problem lies:

Test #1
  1. Disable the Send Later add-on.
  2. Restart Thunderbird.
  3. Compose a new message with a valid recipient, Subject, and message body.
  4. Select the "Send Later" command on the "File" menu of the composition window.

If you get an error at this point, then Send Later is not the problem. Rather, one of the following is wrong:

Test #2
  1. Start with a successful Test #1, above.
  2. Check the "Outbox" folder underneath "Local Folders" and confirm that the message you composed is there.
  3. Select the File > Send Unsent Messages command and confirm that the message in your Outbox folder is sent successfully.

If the "Send Unsent Messages" command is grayed out in the menu, i.e., you cannot execute it even though there is a message in the Outbox, or if the message does not send successfully when you execute this command, then Send Later is not the problem. Rather, one of the problems and solutions listed above in "Test #1" applies.

Test #3
  1. Start with successful Tests #1 and #2 above.
  2. Re-enable the Send Later add-on and restart Thunderbird.
  3. Compose a new message with a valid recipient, Subject, and message body.
  4. Schedule the message with Send Later to be sent five minutes in the future.
  5. Confirm that the message is saved to your Drafts folder.

If, instead of the message being saved into the Drafts folder, you get an error, then try repairing your Drafts folder and then repeat this test. If that doesn't fix the problem, then the error you're getting probably isn't a Send Later issue, it's a generic Thunderbird issue, but if you can't figure out what the problem is, feel free to send us the error message you're getting and we'll try to help.

Test #4
  1. Start with a successful Test #3, above.
  2. Enable the "Send Later" column in the message list in your Drafts folder, if it isn't already displayed.
  3. Make sure that the Draft you scheduled shows the correct scheduled send time in the Send Later column. If it doesn't, then you are probably running into this issue, and you need to use the workaround documented there — configure Thunderbird to save Drafts locally rather than on the mail server — to be able to use Send Later.
Test #5
  1. Start with a successful Test #4, above.
  2. Wait for the scheduled send time of the message and confirm that it is sent correctly by Send Later.
  3. If it isn't, and all the other tests above were successful, then contact us for further assistance.

Corrupt Outbox folder

If your messages aren't being delivered or are being delivered multiple times, then the first thing you should try is clearing your Outbox. Here's how to do that:

  1. Make sure the "Outbox" folder under "Local Folders" doesn't have any messages in it (because we're about to delete the folder). If it does, and you want to save them, move them into your Drafts folder to be resent later.
  2. Right-click (on Mac, perhaps ctrl-click) on "Local Folders" and select "Settings…".
  3. Note the directory in which your local folders are stored.
  4. Browse to that directory.
  5. Exit completely from Thunderbird.
  6. Delete Outbox and Outbox.msf in the Local Folders directory if they exist. Also delete "Unsent Messages" and "Unsent Messages.msf" if they exist. If neither of them exists, then you'll have to use the advanced configuration editor (described above) in Thunderbird and look at the setting mail.default_sendlater_uri to find out the name of your Outbox folder on disk and then delete it (after exiting again from Thunderbird).
  7. Try scheduling a message with Send Later again and see if the problem is gone.

Corrupt Drafts folders

A good sign that one of your Drafts folders is corrupted is if Send Later isn't noticing that there are scheduled messages, i.e., the message at the bottom of your Thunderbird window says "IDLE" instead of "PEND 1", "PEND 2", etc. However, if messages aren't getting sent at the scheduled time, then you may still have a corrupted Drafts folder even if the message says "PEND".

  1. Locate the Drafts folders for all of your accounts. The easiest way to do that, if you have multiple accounts, is to switch to the unified folder view (View > Folders > Unified) and expand "Drafts".
  2. Right click on each one and select "Properties…".
  3. Click the "Repair Folder" button in each Properties window, then click "OK".

NOTE: Repairing a folder resets its visible columns, column layout, and sorting, so if you've customized the columns and/or sorting, you'll have to put the customizations back after repairing the folders.

Full temporary directory on Windows

If your Windows temporary directory ends up with too many files in it, which is partially Thunderbird's fault since it has a habit of creating temporary files and not deleting them, then both Send Later and Thunderbird may start malfunctioning. The two surefire signs of this are, (a) Send Later is able to copy messages into your Outbox for delivery, but once they're there, Thunderbird fails to deliver them, and (b) when there are messages in your Outbox, the File > Send Unsent Messages command doesn't work, or is greyed out and can't even be selected. If you this you may be running into this problem, you should run the Windows Disk Cleanup utility and tell it to clean up temporary files.

Invalid defaultaccount preference

If messages make it into your outbox ("unsent") folder, but they are not being delivered, you might have an invalid value assigned as your default account. If you are not already comfortable modifying preferences in Thunderbird's "Config editor", you might want to just rebuild your profile from scratch to avoid unintended side effects. If you are comfortable with the configuration editor, then proceed with the following:

  1. Open the config editor (Preferences dialog > General tab > Config Editor button)
  2. Search for mail.accountmanager.defaultaccount in the search bar.
    • Note the value assigned– it should be something like "account1".
  3. Search for mail.account.account in the search bar, and verify that preferences exist corresponding to the account name you noted before.
  4. If not, you will need to set the mail.accountmanager.defaultaccount preference to one that matches an existing account (determining which one you should choose is beyond the scope of this documentation).
  5. Restart Thunderbird, and work through the troubleshooting checks above to verify that your configuration is correct.

Send errors with Gmail when Thunderbird is configured to save copies

Many users of Send Later report errors when the add-on attempts to send scheduled messages through a Gmail account. These errors happen more often, but not only, when Send Later attempts to deliver multiple messages at the same time. This is usually caused by an error in the Thunderbird configuration for the Gmail account. In particular, it is not necessary to configure Thunderbird to save copies of sent messages in Gmail's Sent Mail folder, since Gmail saves copies there automatically (this is documented in Google's configuration instructions for Thunderbird). When Thunderbird is incorrectly configured to save copies, it can cause message delivery errors. When this occurs, the delivery error happens after the message is sent to its recipients, when the copy is being saved in Sent Mail. This could potentially cause the recipients to receive multiple copies of the message, since if the user then tells Thunderbird to try sending it again, it might re-attempt the entire delivery, not just the saving in Sent Mail. Therefore, if you are experiencing errors with Send Later through a Gmail account, check your account settings to see if you have "Place a copy in" checked in the "Copies & Folders" settings, and if so, turn it off.

Debug logging

If you ask us for help with a problem you are having with the add-on that we can't reproduce ourselves, then we may ask you to enable debug logging on the add-on, perform some task with debug logging enabled, and then send us the resulting debug log. Here are the instructions for how to do that.

  1. Click on "Send Later" at the bottom of the main Thunderbird window and select "Send Later Preferences".
  2. Change "Console log level" to "All" (or whatever other value I tell you to change it to).
  3. In the main Thunderbird window, type Ctrl-Shift-J to open the error console.
  4. Click the little trash can icon in the upper corner to clear the window.
  5. Do whatever task I told you to do with debug logging enabled.
  6. Repeat steps 1 and 2 above, but this time change the setting to "Fatal" or "Info" instead of "All".
  7. Right click on one of the messages in the error console window and click "Select All".
  8. Copy and paste the selected messages into an email message to us.

Helping to improve the add-on

Translations

If the add-on's messages display in a different language than the rest of Thunderbird, then that means that it hasn't been translated for your language. Translating the add-on is done through Crowdin and is quite easy. Everything you need to know is explained here.

I am happy to help you out if you encounter any problems with Crowdin or have any questions, and the wonderful team of current translators are available to help as well. If you are interested in translating the add on into your language, feel free to either start a discussion about it, or just jump right in on Crowdin. Thanks!

Hacking

The complete source code for the add-on is available on Github. Code contributions are very welcome!

Getting help

Discussion forum

Most support questions can be handled through Send Later's discussion forum. Be sure to check whether your question has been asked/answered already, and post a new discussion topic if not.

Reporting bugs

All known bugs in Send Later are tracked through the project's issue tracker. Please check whether your bug has already been reported, and if not then please either report it yourself, or contact us and we will do our best to get it sorted out.

Contacting the maintainers

If and only if your question or comment cannot be addressed through the discussion forum, then e-mail us directly and we will respond as soon as we can. Please check the discussion forum and issue tracker first, to see whether your question has already been addressed.

Other resources

The kind folks at TCH-Support have published a video tutorial in German of how to use Send Later. They've also produced an English version.

Note: There may be minor differences, since these videos were produced for a previous version of Send Later, but most of it should still apply.

Support Send Later!

I have dedicated countless hours to developing and supporting Send Later. I believe in free software, and the add-on will be completely free for as long as I continue to maintain it, which will be, I hope, for a good long time. Having said that, I am extremely grateful for the donations made by users like you,and the amount of time I devote to improving Send Later is strongly influenced by them. Please use one of the buttons to the left to send a donation. You can also click here to donate with PayPal or click here to donate with crypto.

A donation of $10 or more makes you eligible for listing, including a link, banner, or button if you'd like, on the supporters list!

A non-monetary way you can help is by writing a review. Even if you've written a review before, please do it again! Here's why: reviews are linked to specific versions of the add-on, so when we release new versions and expire old ones, the reviews linked to them are removed from the site. Also, if there is a specific feature you would like us to add, and you're willing to fund its development, please email us and we can discuss it. Of course, you should feel free to send us feature requests at any time, even ones you do not wish to fund; We'll put them into our queue and get to them as soon as we can.

Jonathan Kamens (long time developer and maintainer of Send Later) has also written or maintained several other add-ons which you may find useful:

Credits

A number of people deserve credit for helping to make this add-on what it is today. A huge thank you to Karthik Sivaram, the author and maintainer of the add-on prior to Thunderbird 3, and Jonathan Kamens who developed and maintained Send Later until Thunderbird 68. I would never have been able to create and maintain the current version if not for its predecessors.

Thanks, also, to the people who have translated the add-on into non-English languages (at present, Dutch, Finnish, French, German, Italian, Japanese, Polish, Spanish, Swedish, and Simplified Chinese). These translations were created by Dtrieb from BabelZilla and Erwin D. Glockner (German), urko from BabelZilla (Spanish), Samtron-Translations (Finnish), Bigpapa from BabelZilla (French), Cesare from BabelZilla (Italian), Amigomr from BabelZilla (Japanese), markh from BabelZilla (Dutch), Maciej Kobuszewski (Polish), Mikael Hiort af Ornäs (Swedish), and Wang.H.K from BabelZilla (Simplified Chinese).

Please see above if you would like to help add another translation.

Supporters

I am grateful to the hundreds of people who have made monetary contributions to support the ongoing development of Send Later. Too many have contributed to be able to list you all here, but special recognition is due to those who have contributed significantly more than the suggested donation.

Gold supporters (>$50)

Silver supporters (>$25)

Bronze supporters (>$10)

There's room on this list for you too! 🙂