Announcement Mailing List

From DreamHost
Jump to: navigation, search

Announcement Lists are an easy way to send regular newsletter or announcement style emails to a list of subscribers.

Setting Up & Managing an Announcement List

Basic Setup & Usage

  1. Go to the Announcement List section of our Account Control Panel. Click the button to Add New Announcement List. The required fields are "From name" (such as Balloon Club News) and "Email address of the list" (such as clubnews). Click the Create This List button to create the list and return to the management screen.
  2. On the Announce Lists page, you will see the list you just created. In the Actions column click the Edit button. Scroll down to the Emails to Add text box. Here is where you add people to the Announcement list. Enter the email addresses in the box, one address per line. Do not put any extra text like commas. Click the Modify Subscribers button to finish.
  3. The email addresses you entered will not be immediately added to the announcement list, instead, a message is sent to each address asking the recipient to click a link confirming they want to receive emails from your list. This conformation step we have to require to prevent spam. If the person does not confirm that they want to receive emails from your announcement list, they will not be added as a subscriber and will not receive the emails.
  4. To send announcements to the list, from that same Announcement List page in the panel, in the Actions column click Mail. The Send A Message form will ask you for an email Subject and Your Message (the body of the email). Click Submit Announcement Now button to send the email, automatically, to the email addresses of every single subscriber the announcement list.

How many people can be on my list?

There is no limit on the number of people who can be on a given list.

However, it may take a while for all the messages to go out if you have a really large list (they will go through, eventually, though). If a message you sent hasn't gone out and it's been over six hours, don't resend it. Instead, contact our Support Team and let them know that you think the "mailing list queue needs to be cleared out".

Support will know what to do, and will be able to get all the messages in the outgoing queue to go through. If you had resubmitted your post, two copies will be in the queue at this point, and your subscribers will all get both emails.

How do I edit my mailing lists?

  1. Go to the Mail > Mailing Lists section of our Account Control Panel.
  2. Click on the Edit link next to the list you'd like to edit.
  3. Change the "from" name or subject field here: File:/images/illustrations/Sendfrom.png
  4. To edit your list of subscribers: File:/images/illustrations/currentsubs.gif
    • Write the email addresses of subscribers to be added in this box (note, on the next page you'll send them an email to confirm their wish to be on your list): File:Images/illustrations/addname.gif
    • Write the email addresses of subscribers to be removed in this box: <img src = "./images/illustrations/removename.gif">
  5. Press the Edit Mailing List button, and you're done!

NOTE: To change the list's e-mail address, you'll have to delete it (the list) and create a new one.

How can I import a list from my old list to here?

Create an announcement list from our "Mail > Announcement List"panel. Then click "edit", cut and paste a list of each of the old addresses you had into the "Subscriber List" box there, then click on "Edit Announcement List".

Note, we require that ALL subscribers to ALL announcement lists on our system to have confirmed their intention to subscribe. So, when you paste in this list, you'll first be emailing all of them a message (which you can customize) explaining that you've moved your list provider and will need everybody who wants to keep receiving the list to re-confirm their subscription. They'll just have to click a link in that email to do so!

However, if your old list has already been confirmed using our announcement list software, you can easily migrate your list from that domain to another one on your account. Edit your list in the control panel, and choose the new domain from the drop-down list for your 'List Name'. Don't forget to update your code if you're using a customized subscription form on your site!

How do I import a CSV file into my mailing list?

When a list of emails is copied into the the "Emails to Add" box on the edit page, it will automatically filter out duplicates. Therefore, if you have an external system that has a list of email addresses stored, and you want to periodically import those email addresses into Dreamhost's address list, it is fairly simple to create a PHP script that parses the CSV file for the contact's email and, optionally, name and displays the results in a read-only textarea that can simply be copy-pasted directly into Dreamhost's panel.

// Parse the CSV and enter the results into an array
// This process will differ depending on the contents of the CSV
// The function to use is fgetcsv(), see http://ca.php.net/manual/en/function.fgetcsv.php
$contacts = array();

// Loop through each line in the CSV
$temp['email'] = $email; // Read the email column
$temp['name'] = (!is_null($name) && srtlen($name) > 0 && $name != "") ? " ".$name : ""; // Read the name column, set to empty if there is no name
array_push($contacts, $temp);

// In a blank HTML form (action=""), put this:
<textarea rows="10" cols="50" readonly="readonly"><?php foreach($contacts as $contact) {echo $contact['email'].$contact['name']."\n";} ?></textarea>

How can I export my list here for use elsewhere?

There is not a formalized "export" function available from within the Control Panel, and you can't really "get at" the right files in the shell to manipulate it from there, but a really easy way to "export" the list is to just copy the subscribers list from within the panel.

Once you have done this, you can easily (with a program if you want, or just with a decent editor) "massage" the copied "list" into a CSV ("Character Separated Value") style data file suitable for importing into other programs, a database, spreadsheet, etc.

The general process goes something like this:

1) Go to The Control Panel -> Mail -> Announcement Lists screen in the Control Panel.

2) Click the "Edit" Link in the "Actions" column of the row for the list you want to work with.

3) Scroll down to the "Edit Subscriber List" section, and select what information you want to be displayed. There you will see, "Current Subscriber List (N):" (where "N" is the number of items in the list) followed by links to "Show/hide Dates" and "Show/hide Names" (Depending upon how you last left those items set).

4) Use those links to add (or remove) the display of those items, so that you have the basic "contents" of the list information the way you want it.

5) Move your cursor into the text area and "select" all the text in the box (exact method varies depending upon your os/browser), and "copy" that data.

6) Now you can open an editor on your computer (use a programmers' editor, not a "WordProcessor") and "paste" that copied data into a file. If you only displayed the email addresses - then you are done.

7) If you chose to also display the Names and/or Dates, from this point, you can either execute a couple of "search and replace" operations to "clean-up" your data to put it in the format you want it to be in, or just "save" that file for subsequent processing with another program.

It is easy to use a couple of "mass search and replace" runs to change the extraneous "[name: ", "[joined on ", and "]" characters into field separators (with the last "]" being omitted altogether of course, or changed into the end of line character/s appropriate for your intended use.)

While this is not particularly elegant, it only takes a couple of minutes to do, and you can use whatever file format/character separator you want to delineate the fields this way - so it's almost better than a "canned export" function that might offer less flexibility.


Using the List to Send Announcements

How do I post to my announcement list?

In order to post to an announcement list, visit the posting page. To get there, log into the panel and navigate to Mail > Announce Lists. If you have any active lists setup, you'll see them shown here. To make a new post, click "Mail" underneath the Actions column. On the page that loads, you can compose your announcement using the form.

"From:" - would be which address the announcement is coming from. Usually, this doesn't need to be changed. "Subject:" - what the announcement's about "Your message:" - paste in the message itself, either as plain text, or the HTML source code of an HTML announcement.

"Is this HTML?" - check the box if you pasted HTML code in the message body. If you need help sending messages with HTML formatting, try using a WYSIWYG HTML editor. There are many free online options. Free Online HTML Editor

To schedule the announcement for a future time to send, be sure to edit "Send Announcement At:". Otherwise, it will be queued to begin sending as soon as possible. Click "Submit Announcement Now" if everything is all set and it will be added to the announcement list sending system for queuing (or scheduled.)

Note: It's also possible to post an announcement via the Dreamhost API. Be sure to check the section on Announcement Lists for further details.

Can I send HTML encoded messages to my list?

Yes you can! Just click until you see a check mark appear in the little "This is HTML" checkbox next to the submit button on the mail page. This will result in HTML tags in your message being interpreted as HTML for people whose mail clients have HTML capabilities. You should paste your HTML code directly into the textarea that says "Your message:".

Also, don't worry that some people on your list can't read HTML-formatted email! Your message is sent as a multi-part message. Those users with email clients that can't read HTML will get a plain text version!

What can I use this list for?

Use your announcement mailing list to keep subscribers up to date on changes to your business or web community. If your site is home to a club, keep subscribers apprised of meetings and events. If you have a business site, you can use the list to send product updates to customers who have requested updates. If your site has a newsletter, you can even use your mailing list to distribute your newsletter to people who have asked for it.

Note that mailing lists are only for mailing those who have specifically signed up to be on this list through your website. You may not send any unsolicited bulk email (also known as "spam") through this service. If you spam, your account may be immediately terminated without warning.

In addition, at the bottom of every mailing, you must put instructions for unsubscribing from the list.

For more details on what you can and cannot do under our anti-spam policy, please read our spam policy and resources page.

How do the members post to the list?

They cannot. This is an announcement-only mailing list, not a discussion list. We also offer discussion lists, however, which are much better suited for this sort of usage.

Adding Users to the List

How can people subscribe to my mailing list?

You can manually add people to your list from our Announcement List area. They will receive an email with a link to confirm their subscription. If you are adding users in bulk, please do not use commas.

To allow people to self-subscribe, include an HTML form similar to the examples below in a web page that you host with us. Keep in mind that Unsubscribe URL, Already Subscribed URL, Not Subscribed URL, Invalid Email Address URL, Confirmation URL, can be adjusted for your list from its Announcement List edit page, so you don't need to manually add them to your form (and that Subscribe URL can only be specified through that edit page).

When someone subscribes, the form instructs our servers to run a script that sends a confirmation e-mail then displays your SubscribedURL page (or a generic page if none is specified). When the recipient confirms by clicking the link in the e-mail, the script will show the EmailConfirmURL page (or a generic page if none is specified). If any problems occur, the script shows one of the error pages, or the UnsubscribedURL page if the person is unsubscribing.

Once someone has subscribed to your mailing list, the information will appear in the Announcement List for management and posting to the list. If you would like your visitors to redirect to a custom page after filling out the form, you can easily configure this in the panel as well.

Note that if your site uses WordPress, you must link to the default "Ugly" permalink type (of the form "http://example.com/?p=N") even if you use any of the "Pretty" permalinks instead. This is because the mailing list scripts automatically add parameters to the URLs which don't work with "Pretty" permalinks. If you edit a post or a page, you can find the post ID number in the URL line after the post= text. For example, you might see something like: http://example.com/wp-admin/post.php?post=3141?action="edit", so the post ID is "3141". In this example, you would use something like: http://example.com/?p=3141 as the URL of the page even if it also has a "Pretty" permalink like: http://example.com/mailing_list_unsubscribed. You may also create these pages outside WordPress to avoid the problems with permalinks.

Here is a basic form that includes all the optional fields. Note that you must customize the text between underscore ("_") characters below (such as _MailingListName_) according to your needs. See below for an explanation of these fields. Also, if you have multiple mailing lists, you must have a separate subscription form for each one.

<form method="post" action="http://scripts.dreamhost.com/add_list.cgi">
<input type="hidden" name="list" value="_MailingListName_" />
<input type="hidden" name="domain" value="_DomainName_" />

    <!-- Optional: -->
<input type="hidden" name="unsuburl" value="_http://UnsubscribedURL_" />
<input type="hidden" name="alreadyonurl" value="_http://AlreadyOnURL_" />
<input type="hidden" name="notonurl" value="_http://NotOnURL_" />
<input type="hidden" name="invalidurl" value="_http://InvalidURL_" />
<input type="hidden" name="emailconfirmurl" value="_http://EmailConfirmURL_" />
<input type="hidden" name="emailit" value="1" />
Name: <input type="text" name="name" />

    <!-- Required: -->
E-mail: <input type="text" name="email" /><br />

    <!-- Optional: -->
Confirm E-mail: <input type="text" name="address2" /><br />

    <!-- Required: -->
<input type="submit" name="submit" value="_Join Our Announcement List_" />

    <!-- Optional: -->
<input type="submit" name="unsub" value="_Unsubscribe_" />

    <!-- Required: -->
</form>

This code will put the following form on your website:

Sample announcement list form

Here's an example that uses a table:

<form method="post" action="http://scripts.dreamhost.com/add_list.cgi">
<table><input type="hidden" name="list" value="_MailingListName_" />
<input type="hidden" name="domain" value="_DomainName_" />

    <!-- Optional: -->
<input type="hidden" name="unsuburl" value="_http://UnsubscribedURL_" />
<input type="hidden" name="alreadyonurl" value="_http://AlreadyOnURL_" />
<input type="hidden" name="notonurl" value="_http://NotOnURL_" />
<input type="hidden" name="invalidurl" value="_http://InvalidURL_" />
<input type="hidden" name="emailconfirmurl" value="_http://EmailConfirmURL_" />
<input type="hidden" name="emailit" value="1" />
<tr><td>Name</td><td><input type="text" name="name" /></td></tr>

    <!-- Required: -->
<tr><td>E-mail</td><td><input type="text" name="email" /></td></tr>

    <!-- Optional: -->
<tr><td>Confirm E-mail</td><td><input type="text" name="address2" /></td></tr>

    <!-- Required: -->
<tr><td><input type="submit" name="submit" value="_Join Our Announcement List_" /></td><td></td></tr>

    <!-- Optional: -->
<tr><td><input type="submit" name="unsub" value="_Remove previous notification_" /></td><td></td></tr>

    <!-- Required: -->
</form>

  • _MailingListName_: This is the part of your mailing list "From Email" that comes before the @ sign. So if your list is jokes@domain.com, this would be jokes. You can view all your lists (and their From Email Addresses) on the Announcement List section of the webpanel. Realize that people won't actually be able to send email to listname@yourdomain.com unless you set that up as an alias and/or auto-responder through the web panel.
  • _DomainName_: This is the domain name of the site where this form is residing. It's not necessary to have this field, but having it will ensure full compatibility with all browsers.
  • Subscribe URL: This is a full URL of the page that will appear after someone has successfully subscribed to your mailing list. You can create your own .html page to tell people they've subscribed (in which case, the URL would be something like http://www.yourdomain.com/SubscribedURL.html), or you can leave this field blank to have subscribers forwarded to a very bland page telling them that they have subscribed to your list. If you do create a custom page, it should probably tell them that they have successfully subscribed to your list, and where they can go to unsubscribe. You can only specify this URL from an Announcement List edit page.
  • _http://UnsubscribedURL_: The URL of the page that appears if someone just successfully unsubscribed from the list. You can create your own .html page to tell people they've unsubscribed (in which case, the URL would be something like http://www.yourdomain.com/UnsubscribedURL.html). If you omit this field from the HTML, the value in the Unsubscribe URL field on the Announcement List edit page will be used instead. If the field is blank, subscribers will be forwarded to a very bland page telling them that they have unsubscribed from your list.
  • _http://AlreadyOnURL_: The URL of the page that appears if someone who is already on the list attempts to subscribe to it. You can create your own .html page to tell people they're already on your list (in which case, the URL would be something like http://www.yourdomain.com/already_on.html). If you omit this field from the HTML, the value in the Already Subscribed URL field on the Announcement List edit page will be used instead. If the field is blank, subscribers will be forwarded to a very bland page telling them that they are already on your mailing list.
  • _http://NotOnURL_: The URL of the page that appears if they are not on the list, and they have attempted to unsubscribe. You can create your own .html page (in which case, the URL would be something like http://www.yourdomain.com/not_on.html). If you omit this field from the HTML, the value in the Not Subscribed URL field on the Announcement List edit page will be used instead. If the field is blank, subscribers will be forwarded to a very bland page telling them that they are not on your list.
  • _http://InvalidURL_: The URL of the page that will appear if the email address entered is invalid. You can create your own .html page with this message, (in which case, the URL would be something like http://www.yourdomain.com/invalid.html). If you omit this field from the HTML, the value in the Invalid Email Address URL field on the Announcement List edit page will be used instead. If the field is blank, subscribers will be forwarded to a very bland page with this information.
  • _http://EmailConfirmURL_: The URL of the page that will appear when the user confirms their opt-in to your list by clicking a link in an email message just sent to them. If you customized the URL field, you should probably customize this one as well. You basically need a message that says something like "You are not QUITE subscribed yet.. please now check your email right now for the last step to confirm your subscription to our list!". You can create your own .html page with this message, (in which case, the URL would be something like http://www.yourdomain.com/emailconfirm.html). If you omit this field from the HTML, the value in the Confirmation URL field on the Announcement List edit page will be used instead. If the field is blank, subscribers will be forwarded to a very bland page with this information.
  • <input type="hidden" name="emailit" value="1" />: If you have this hidden input in the form, you will automatically receive a default email sent to _MailingListName_@yourdomain.com (which you can then set up as an auto-responder whenever someone signs up for the mailing list. Plus, you will also get a default email sent to unsubbed-_MailingListName_@yourdomain.com whenever somebody unsubscribes too!
  • _Join Our Announcement List_: This label can be changed to anything that doesn't contain the words "remove", "out", "unsub", "leave", or "delete," and it will act as the subscribe button. Also if you're an HTML expert you can use an image for the submit button. But we leave that up to you to learn how to do.
  • _Unsubscribe_: This will be the label on your "unsubscribe" button. It's not mandatory to have this button, but it's more convenient for everyone, if your list members can unsubscribe over the web, without your intervention. The name of this button must include one of the following: "remove", "out", "unsub", "leave", or "delete". If it doesn't, it will act as though it is a subscribe button.

Can I add more fields to the basic form?

Hey, we've got a new feature that allows our mailing list form to double as a formmail script! Basically, any extra fields you add to your form (besides the ones listed above and the three that follow) will be included in the notification email you get when somebody subscribes to your list! You can also now customize that with these three new hidden fields:

  • required: A comma-separated list of fields your user MUST fill in in order to successfully submit the form. Example: <input type=hidden name=required value="street1, city, state, zip, country">
  • missingrequrl: The url to redirect to if somebody tries to submit a form without some of the required fields you specified via the "required" form element. This url will also get posted to it a variable called "missing" with a value like "field1,field2,field3" with all the missing fields. Example: <input type=hidden name=missingrequrl value="http://www.mysite.com/missingrequiredfields.html">
  • fieldorder: A comma-separated list that tells you the order you'd like the fields to be reported to you in the email you receive. If you don't specify this, they will appear in random order (not necessarily the order they appear in your html form). If you do specify this value, you will ONLY receive the fields you list here (plus name and email address, which are always first). Example: <input type=hidden name=fieldorder value="orgname, street1, city, state, zip, country">

How do I make sure email addresses are correct?

Hey, another new feature! So, let's say you don't think your potential subscribers can handle typing their own email address correctly the first time, and you want them to re-type it JUST to be sure there are no mistakes. Easy peasy! Just add:

  • <input type=hidden name=req_address2 value=1 ><input name=address2 >

How do I display information from the form on my custom URLs?

Whoa, another new feature! Now, if you use your own custom URLs for the various results that can come from users submitting this form, you can still get access to some of the information submitted in the form! Our script now redirects to your URLs with the following variables:

  • address=user@domain.com
  • name=Their+Name
  • code=#

Where the codes are as follows:

Address Successfully Subscribed: 1

Address Successfully Unsubscribed: 2
Address Successfully Mailed Confirmation Link: 3
Address Already on List: -1
Address Not In List (when Unsubscribing): -2
Invalid Email Address: -3
Missing Required Field(s): -4
Re-typed email doesn't match first: -5

Following is an example that reads the name and address entered on the form on a custom Subscribe URL response page:

<?php
$email = $_GET['address'];
$name = $_GET['name'];
?>
Thanks for subscribing, <?php echo $name; ?> - we'll send our next newsletter to you at <?php echo $email; ?>!

This example assumes the name form field is required (otherwise you'd need to get a little fancier to display something else if the name field is blank, look below for one way to handle this problem) and that your page is being processed as php (probably that means it needs to end in .php).

Using a PHP conditional to check for data in the name field:

<?php
if ($name!="") 
echo "$name"; ?>
Thanks for subscribing<?php if ($name!="") echo ", $name"; ?> - we'll send our next newsletter to you at <?php echo $email; ?>!

This way, the name field will not print if it contains nothing.

NOTE: If you need to suppress these query variables (e.g, if you are using WordPress), you can do so by adding the nourlvars=1 query variable when adding someone to the list.

How do I use images for my subscribe and unsubscribe submit buttons?

If you don't want to use the standard submission buttons but would rather use your own images, you can do that with this code:

<input type="image" border="0" name="submit" src="subscribe.gif"> <input type="image" border="0" name="unsub" src="unsubscribe.gif">

(Instead of this: <input type=submit name=submit value="Join Our Announcement List"> <input type=submit name=unsub value="Unsubscribe">)

How can I set it up so everyone who subscribes automatically gets a welcome message?

Just set up ListName@yourdomain.com to be a valid email alias (which can point to null if you don't want to receive an email notifying you each time a new person subscribes), and then set up an auto-responder for that alias! Then make sure you DO have the emailit hidden input in your form on your web page.

Note, we're talking about the announcement-only mailing list here, not the mailman discussion list feature, which has its own configuration to allow a welcome message to be sent to all new subscribers.

When I manually add subscribers, can I give them names?

You can include names when manually subscribing users from the edit link of our "Mail > Announce List" area!

Just put their names on the same line as their email address in the Emails to Add field, separated by a space. For example:

person1@domain.com jane doe
person2@domain.com john doe
person3@domain.com john q. public
That's it!

Other

Will my mailing list still work if I change my domain's MX record?

Believe it or not, it still will! Nothing will change with it at all, except that if you have an auto-responder set up it will stop working. But you can still post to your list and people can subscribe and unsubscribe as before.

Receiving bounced messages for your mailing list

How do I set up my mailing list so that I get notified when email is bounced from addresses on the list?

In order to get the "bounced" messages for your mailing list, you need to set up an email alias (address) called "listname@domain.com," where these messages can be sent. So, for example, if your list is called "customers," and your domain is "mybiz.com," you need to create an email alias called "customers@mybiz.com."

If you have set up a default email address to catch all incoming email to your domain (except for that mail covered by other addresses you have already created), this should also catch the "bounced" messages, though you might want to set up "listname@domain.com" anyway, just in case.

Also, keep in mind that you have to set the "Remove Bad Addresses" option on your list to "never", or else bounceback messages will go to us directly (and not your email address) so that we can process the bouncebacks automatically for you.

To learn more about aliases and how to set them up, check out the "related links" in the column to the left of this window.

See also