Cannot send mail
From MozillaZine Knowledge Base
If you've followed instructions for configuring Thunderbird and still cannot send mail for one or more of accounts, the following may help:
If Thunderbird displays an error message when you try to send mail, you can identify possible causes by looking for the message in the article: Connection errors - SMTP
Firewalls and antivirus software
Verify that your firewall or antivirus program is not blocking Thunderbird. With a classic firewall its simply a question of whether or not you have a rule that states the application is allowed to connect to the Internet, and does the rule know about the current version of the Thunderbird executable. However, many firewalls/security suites have threat level settings. Sometimes those settings work fine with fetching mail but not sending mail. 
If your anti-virus program is scanning outgoing messages disable that feature (its okay to have it scan incoming messages).
Some antivirus software (Network Assoc Viruscan) blocks port 25 to prevent mass emailing worms from sending out email. If you are migrating from a previous email client, your previous email client might be able to send out email even with port 25 blocked by anti virus software. Please check the antivirus settings again.
If you recently upgraded Thunderbird, verify that the firewall is not blocking the new version.
In 2006 and 2007, some ISPs introduced new mail filtering before it reaches their mail-server. If you have any suspicious objects in your mail, the e-mail will leave your machine fine, but won't even reach their mail-server. Test for this by using your browser and logging into your ISPs webmail system (if they have one) and send an e-mail using the webmail. If that sends OK, then the problem could be this. One example of an item being blocked is the word 'geocities' - not in your mail but in your signature attachment. The ISP antispam/virus software thinks it is a spammer attachment, and your outgoing mail disappears forever. If your e-mail system has been stable and working for a long time, then suddenly doesn't send, suspect your ISP. And stop attaching a signature.
Verify Thunderbird is in online mode, not offline mode: click "File -> Offline"; "Work Offline" should be unchecked. If you send a message while in offline mode, it goes to the Unsent Messages folder in Local Folders. See below for Advanced tips.
Outgoing mail settings
First, get the correct outgoing mail (SMTP) settings from your service provider, usually your Internet Service Provider (ISP): try their website, search Google for your ISP plus the word "smtp", or call them.
Verify the settings in Thunderbird exactly match what your ISP provides: no typos (e.g., "smpt"), extra spaces, punctuation mistakes (e.g., no commas instead of periods) or capitalization errors (e.g., lowercase instead of Caps).
Click "Tools -> Account Settings -> Outgoing Server (SMTP)" (at the bottom of the left pane—you may need to scroll down), and double-check:
Also, click "Tools -> Account Settings -> [account name] Server Settings -> Advanced -> SMTP" and verify the correct SMTP server is selected there. If you see "Relay access denied" or "Relaying denied" errors, be sure to verify this setting.
Some e-mail service providers require that you check for new messages before you can send messages. See POP before SMTP support for further information.
If you used to be able to send before upgrading Thunderbird and it silently fails, check whether an add-on that hooks into the send process such as Check and Send was disabled. Either temporarily disable that add-on and see if the problem goes away or disable the version check per updating add-ons and enable the add-on.
If you have some sort of anti-spam add-on that has a toolbar such as SPAMfighter check that the toolbar didn't disappear. Sometimes when that occurs it prevents Thunderbird from sending. Depending upon the add-on you may need to uninstall it or upgrade it. 
For advanced users
ISPs blocking port 25
In an effort to stop spam, many ISPs (Comcast, Cox, many others) block all traffic to port 25 on anything except their own SMTP servers. This plays out like this:
Say you configure your laptop's Thunderbird's "Outgoing Mail Server" to use smtp.mycompany.com port 25. When you test sending e-mail, it works, because you're not subject to Comcast rules on your company's network.
Now take the laptop home and try sending mail. Either you get an error message, or the mail simply vanishes. Comcast drops it because it was addressed to port 25 but not to Comcast's SMTP server.
The usual fix is simple but may not work for all servers. In Thunderbird's "Outgoing Mail Server" panel, replace the default 25 with 587. RFC 2476 explains why this works for newer SMTP servers. (For sbcglobal.net, the fix is to change port to 26.)
Alternatively, your ISP might agree to unblock port 25 for you on request.
SBC Yahoo customers can also look at "Why am I unable to send email..." on the SBC site for more solutions.
SSH tunneling to a box that isn't blocked
If port 25 is blocked by your internet provider, say Comcast, but you have SSH access to a server on a network that doesn't block port 25, you can can relay traffic from port 25. Use the following command:
ssh -L 25:<IP of the SMTP Server>:25 -N <IP of your server>
Replace <IP of the SMTP Server> with the IP of the SMTP server you'd like to reach, but that you can't reach because port 25 is blocked. Replace <IP of your server> with the IP address of the server that is on the alternative network. It won't look like anything is happening when the command is running, but you'll be forwarding traffic from port 25 on your computer via SSH to your server and your server will send that traffic to the real SMTP server.
You can now use the kind-of-elaborate setup to send e-mail over port 25. Configure Thunderbird to use 127.0.0.1, port 25, as the SMTP server. When you send e-mail it'll work as expected. The traffic won't be blocked by your ISP because it is being tunneled through SSH.