From MozillaZine Knowledge Base
Mailing lists permit the addition of multiple addresses to a message at one time by entering the list name as if it was an email address. A mailing list currently can only contain addresses from a single address book and doesn't have a separate existence, its basically just a subset of a address book. That is a implementation restriction that will eventually be changed.  
Thunderbird displays 3 address lines by default when you compose a message. It will add additional lines as needed. If you just want to change the number of lines use the Address Widget Lines add-on to change the default (1 to 12 lines), rather than using a mailing list.
Create a new mailing list
1. In the main window, click on the "Address Book" icon to open the Address Book window (or use menu path Tools->Address Book, or press Ctrl+Shift+B).
2. Click on the "New List" icon (or go "File -> New -> Mailing List...").
3. In the dialog box that pops up, use the drop-down list to select the address book to which you want the new list to belong. Also type in the list name and, if you wish, a nickname and description.
4. To enter addresses into the list, you can:
Compose a message addressed to a mailing list
To compose a message addressed to a mailing list that you've created, do any one of the following:
No matter which of these options you use, the email addresses of everyone on the mailing list will be visible to anyone who receives the message, even if all that you see in the "To" field is the name of the mailing list. If you do not want your recipients to see all the addresses, then use the small drop-down list next to the "To" field to change "To" to "Bcc".
Most email providers impose a limit on the number of recipients when sending a message. Gmail for example imposes a limit of 100 when using a email client. If its a problem and you have several accounts check whether any of the other accounts have a higher limit. Otherwise you probably need to break the mailing list into multiple lists, and send the message multiple times. In extreme cases you might want to think about creating a Yahoo Group or Google Group instead.
Import and export a mailing list
Thunderbird 3.0 (and later versions) doesn't support importing and exporting mailing lists. You can select a mailing list and export it as a address book, but it only knows how to import it as an address book, not a mailing list. The MoreFunctionsForAddressBook add-on adds explicit support for exporting and importing mailing lists.
Use the AddressContext extension to create a list
The AddressContext extension provides an easier way to create a list. If you select one or more messages in the folder listing, right click on the selection and then select addressContext it gives you the option to add either all the senders or all the recipients to a list. However, if you want to add any other email addresses to the list you have to do that normally.
Avoid sending to an address in a mailing list
The NotTo extension adds a "NotTo" option to the drop down list which can be used to avoid sending a message to the specified addresses despite their being included in a mailing list. It also provides a "NotTo Forward" option which can be used to avoid forwarding a message to the original sender. There is a completely rewritten version by another author for 3.1 called NotTo_Ojx
The AddExpandedList extension lets you right click on a mailing list in the Contacts pane, and tell it to add the contents of the list as seperate To:, CC:, or BCC: fields. The PopMailListRecipients add-on adds a button to expand a mailing list into separate entries. The advantage of these two extensions is that you don't have to trust that the extension removed an entry.
Validate a mailing list
The ThunderPlunger extension has a validate email address function that can be run from the address book if you want to detect and delete invalid email addresses before sending a message using a list. You can check either a single card, or tell it to check the addresses for an entire address book. The downside is it calls a web service provided by the author. The home page discusses concerns that this is a scheme to harvest email addresses, and has a link to the web services source code and more information.
Send messages separately
The Personalize tweak in the MailTweak add-on is mainly used to personalize messages using data from your address book or a .CSV file but it also creates an individual copy of the message for each recipient, regardless of how the recipient was specified. This can be useful if your email provider blocks or labels as SPAM messages from long mailing lists. However, each recipient must be in your address book, even if you're not using any address book fields to personalize the message. Performance will also be poor, and you might get a script busy or stopped responding error message, despairing upon how many recipients you have. At some point you will be better off using either a specialized bulk mailing program or a service such as Yahoo Groups.
MailTweak doesn't work well with recent versions of Thunderbird (it also requires disabling version checking). Its author has also abandoned it and can't be reached. Another way to send an individual copy of the message for each recipient is to use the MailMerge add-on.
Search for addresses in your messages and add them to an address book
The Email Address Crawler extension adds all of addresses from the selected folder and its children to the specified address book. You can specify whether it should search the To, CC or From headers and how many times it needs to find an address before adding it. This is useful if you want to create a mailing list for a large group. PC Magazine has an article about the add-on here.
To use it select a folder in the folder pane, right click it and select "crawl folder for email addresses" from the context menu. That will bring up a search parameters window.
The Incoming Addresses Collector extension can be used to either automatically add incoming addresses to an address book or add them from selected messages. It supports using regular expressions to restrict which addresses get added.
Email providers typically impose a hourly and/or daily send limit based on either how many messages you send, or the total number of recipients. If you send 2 messages to 5 recipients that would count as 10 recipients. Gmail has a much lower sending limit for a email client than webmail, and will temporarily suspend an account if it exceeds the sending limit.
If you need to send a lot of mail consider using the SMTP server provided by MailChimp (they have both free and commercial accounts) instead of your email provider's SMTP server with your account, or using either Yahoo Groups or Google Groups as your mailing list manager.
Mailing list name is not a valid e-mail address
If you get an error message similar to "the mailing list name is not a valid e-mail address because it is not of the form user@host. You must correct it before sending the e-mail." that might be due to either an embedded space in the name or the number of email addresses in the list. One user also reported it occurred if the name of the mailing list had any anything other than letters and numbers (such as a dash).  That bug has been fixed before in versions 23.0 and 31.1.1 but a regression error may have caused the bug to reappear.
Nested mailing lists
If you plan on sending a HTML newsletter and want to do more than just read a sample copy you sent yourself beforehand, you could use the Chromebug add-on to examine the HTML. Its based on modifications to Firebug. Using "Edit -> Select Element by Click" with the DOM Inspector add-on might also be useful.