What to do if WebScriber won't send emails
Check the basics
- Is TESTING_MODE set to off? If testing mode is turned on, WebScriber won't send out any emails.
- Check the setting for SMTP_HOST_NAME. Although localhost works for most people, you might need to put your domain name here, or the name of your mail server.
- Have you entered settings for SMTP_USERNAME, SMTP_PASSWORD and SMTP_REALM? If not, try entering them now. If you have, do the settings look correct?
- Have you set the correct value for PATH_TO_EZMLM? On most systems it should be /usr/local/bin/ezmlm/ or /usr/bin/ezmlm.
- If you've tried everything above but it still doesn't work, try setting USE_BUILTIN_MAIL=on in the config.txt file. This will use an alternative method of sending email that is more likely to work, but can strain the server.
Check the permissions on WebScriber
- Is WebScriber running from the cgi-bin or cgi-sys directory on your webserver? While not always required, WebScriber is more likely to run from these directories.
- Have you set the permissions on the email.php file to 755?
- Do all the other WebScriber files have permissions 644?
Check the permissions on ezmlm
- Do the ezmlm programs have permissions 755?
- Does the directory where the ezmlm mailinglists are stored have permission 770 or higher?
- Do the files in this directory have permission 660 or 664?
Recreate the ezmlm lists with correct permissions
On some systems, PHP and/or the web server run under a different username to that used by the ezmlm lists. For WebScriber to work, these should probably be the same. Try creating new ezmlm lists by following the instructions below. It assumes that your web server is running as "nobody", domain.com is your domain name, mailserver.com is your mail server and listname is the name of the list you want to create. Substitute as appropriate.
- su to root
- cd to /var/qmail/control
- edit virtualdomains and create an entry as follows:
domain.com: nobody
- edit rcpthosts and add an entry for domain.com
- send a HUP signal to qmail-send (or alternatively, restart qmail-send)
- edit dns with an mx record for domain.com:
domain.com in mx 10 mailserver.com
- create user "nobody" if it does not exist
- create a home directory for "nobody"
su - nobody
ezmlm-make -s /home/nobody/listname /home/nobody/.qmail-listname listname domain.com
Many thanks to Damian Silvera from the University of Miami for the above steps. If you haven't got a clue what any of the above means, don't worry - you probably need to give this information to your system administrator instead. And be polite with them, they're busy people too!