Moodle plugins directory: Moodle eMail Test

Moodle eMailTest allows administrators to test Moodle's email system. A trace of the SMTP dialogue will be displayed if the email message cannot be sent for any reason. The eMail Test for Moodle plugin does not store any personal data about any user.

The Moodle eMailTest plugin is a tool that enables administrators to easily test Moodle's mail system. A trace of the SMTP dialogue will be displayed if the email message cannot be sent for any reason.

Once the test email has been sent, you will need to check your email inbox to confirm that the email message was successfully delivered. This plugin will not do that for you.

Potential privacy issues

Note that the email sent to the recipient contains details about the administrator and the site including account username, web browser, IP address, Moodle version and preferred language.

Awards

Comments

Thanks Michael for sharing this simple yet useful plugin with the Moodle community. Please see your issues tracker where several improvements suggestions have been reported while they were detected during the review. With the hope the issues will be addressed in a future update of the plugin, I am going to approve the plugin now. You are cleared to land, welcome to the Plugins directory!

Thanks David! I've addressed all of your concerns as well as a few extra I discovered in the recent release. I also tested it with versions of Moodle right up to 3.0 RC1. Thank you again for your feedback. I really appreciate it.

OK when I send a message to verified gmail or other email account. I get the message "The test message was successfully delivered to the SMTP server", but no message arrives to the email address. What am I missing regarding the plugin?

The plugin is likely working as it was made to. It simply tests whether Moodle was able to successfully deliver an email to the SMTP server. It cannot determine what happens to that email message after the server accepts it. For example, the server could reject it if it considers it to be SPAM or there could be a problem with the SMTP server's ability to forward the message. Your next step would be to check the SMTP server logs to see what it did with your message which is not part of the plugin's functionality since this isn't part of Moodle.

If you want to double check the SMTP dialogue between Moodle and the SMTP server, just click Home > Site Administration > Development > Debugging and check the box for "Debug email sending". Then go back and repeat the test. The results should be display, even if the plugin doesn't detect a problem.

Great question Jason. Some emails are sent out immediately while others are scheduled and only sent out when Cron runs. Other things that are often affected by Cron jobs are report generation. Eventually, if you never run cron, your Moodle site will also stop working so it is important to make sure that this is setup properly.

As a Moodle Administrator, you can check if Cron is running regularly by going to the Site Administration > Notifications.

If cron hasn't run in the last 24 hours, you will see something like:

"The cron.php maintenance script has not been run for at least 24 hours.

If you don't see anything about it, chances are that Cron is running automatically at least once a day.

There is also the possibility that an error is preventing Cron from working properly. The likelihood of this happening is much lower since Moodle 2.7. You should be able to manually run Cron and see the results by logging in as a Moodle Administrator and going to:

There are some settings in Moodle which can prevent this URL from working so, if it doesn't seem to work, don't assume that Cron doesn't work. It might just be some Moodle settings. If Cron is running regularly, the displayed log might be pretty short as there are items which are only run once a day which may not appear in the list. This is especially noticeable if you run Cron manually twice in a row.

Thanks again for asking. I will add a check for cron similar to the one on the Notifications page to let you know if there is a problem with the scheduling of the cron script in the next version of the mailtest plugin as this could be a potential reason why emails don't seem to be delivered.

By the way, it's never too late to setup Cron. Not only will you find that your Moodle site works better, it may actually work faster too. If you are running Moodle on a Unix/Linux based server, documentation on how to set it up can be found at https://docs.moodle.org/31/en/Cron. If you are running Moodle on Windows, you may have noticed that "cron" doesn't exist. However Windows does also include a Scheduler. You will find details on how to set that up by going to https://docs.moodle.org/31/en/Cron_with_Windows_OS.

This error message usually appears when you have too many email recipients or there is a limit on how many emails you can send through your mail server.

Since MailTest only sends messages to a single recipient at a time, it is probably more likely that your mail server provider has either placed a limit on how many emails you can send through it or that you have exceeded the storage quota of your email account or the physical drive.

This actually happened to me recently. My ISP created a mailbox for my account when I signed up. Each time a cron job would run, it would send an email to that account. Over the years it added up to over 500,000 emails. There were so many emails that they had to clear it from the command line as there was no email client that could handle this many emails. It really surprised me as I was not even aware that the email address even existed.

As for your situation, the next step would be to contact your service provider and get them involved in troubleshooting the mail server.

I installed a separate version of PHPMailer and set up a test email using the same SMTP settings Moodle is using and I received the email from the standalone PHPMailer. I have DEVELOPER mode turn on for Moodle and it didn't seems to add more messages. Do you have an suggestion as to why the connect seems to fail at the TLS handshake.

Search the page for "SMTP Error: Could not connect to SMTP host." and anything to do with "TLS". Also note the section that specifically mentions "PHP 5.6".

TLS stands for "Transfer Layer Security" which is all about secure encrypted email communication. I am not familiar with your email environment but your problem could be with openssl, DNS, port, credentials, server configuration, etc. If your successful test was on the same server as your instance of Moodle, that could eliminate many of these possibilities. What remains is potential conflicting configuration issues, on the web server and/or the mail server.

When you tried using a standalone instance of PHPMailer, you are very likely using different configuration settings as well. The next step would be to compare the configuration between the two instances of PHPMailer. Comparing their interaction with the SMTP server might reveal something of significance.

Have you tried conducting your test using the version of PHPMailer that is included in Moodle's /lib/phpmailer folder? Have you tried sending email using PHP's own mail() function?

@Ernie, I would like to suggest testing the moodle with a gmail account. Usually institutes have different rules and staffs, so it may be hard to find the bottle neck. However, Gmail is freely available and you can enter the imap and smtp and ports. If the Gmail test was successful, that means everything is ok with you moodle. Then you have to consult with your admin.