
General plugins (Local): Moodle eMail Test
local_mailtest
Maintained by
Michael Milette
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.
9443 sites
2k downloads
102 fans
Current versions available: 1
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.
Useful links
Contributors
Michael Milette (Lead maintainer)
Please login to view contributors details and/or to contact them
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:
http://example.com/admin/cron.php
Just replace "http://example.com/" with the URL to the root of your Moodle site.
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.
Best regards,
Michael Milette
Do you have any idea for the following error:
2017-10-04 09:29:37 SERVER -> CLIENT: 250 Recipient accepted
2017-10-04 09:29:37 CLIENT -> SERVER: DATA
2017-10-04 09:29:37 SMTP -> get_lines(): $data is ""
2017-10-04 09:29:37 SMTP -> get_lines(): $str is "452 Sent messages limits exceeded
"
2017-10-04 09:29:37 SERVER -> CLIENT: 452 Sent messages limits exceeded
2017-10-04 09:29:37 SMTP ERROR: DATA command failed: 452 Sent messages limits exceeded
2017-10-04 09:29:37 SMTP Error: data not accepted.
The test email message could not be delivered to the mail server.
The email test OK and it was working perfectly.
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.
Hope you find this useful. Best regards,
Michael
I downloaded this plugin to test my moodle emailing functions. I am getting the following message:
2017-12-06 20:39:13 Connection: opening to smtp.sendgrid.net:587, timeout=300, options=array (
)
2017-12-06 20:39:19 Connection: opened
2017-12-06 20:39:19 SMTP -> get_lines(): $data is ""
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "220 SG ESMTP service ready at ismtpd0005p1iad1.sendgrid.net
"
2017-12-06 20:39:19 SERVER -> CLIENT: 220 SG ESMTP service ready at ismtpd0005p1iad1.sendgrid.net
2017-12-06 20:39:19 CLIENT -> SERVER: EHLO starslms.com
2017-12-06 20:39:19 SMTP -> get_lines(): $data is ""
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-smtp.sendgrid.net
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-8BITMIME
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
250-8BITMIME
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-PIPELINING
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-SIZE 31457280
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-STARTTLS
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250-AUTH PLAIN LOGIN
"
2017-12-06 20:39:19 SMTP -> get_lines(): $data is "250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
"
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "250 AUTH=PLAIN LOGIN
"
2017-12-06 20:39:19 SERVER -> CLIENT: 250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
2017-12-06 20:39:19 CLIENT -> SERVER: STARTTLS
2017-12-06 20:39:19 SMTP -> get_lines(): $data is ""
2017-12-06 20:39:19 SMTP -> get_lines(): $str is "220 Begin TLS negotiation now
"
2017-12-06 20:39:19 SERVER -> CLIENT: 220 Begin TLS negotiation now
2017-12-06 20:39:19 SMTP Error: Could not connect to SMTP host.
2017-12-06 20:39:19 CLIENT -> SERVER: QUIT
2017-12-06 20:39:19 SMTP -> get_lines(): $data is ""
2017-12-06 20:39:19 SMTP -> get_lines(): $str is ""
2017-12-06 20:39:19 SERVER -> CLIENT:
2017-12-06 20:39:19 SMTP ERROR: QUIT command failed:
2017-12-06 20:39:19 Connection: closed
2017-12-06 20:39:19 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
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.
I am using PHP 5.6 / moodle version 3.2
Thank you,
Ernie
Turning on DEVELOPER mode won't produce any additional information because that is exactly what the plugin does in order to capture and display this information.
As for your error message, did you take a look at the link it suggested on the last line? https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
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?
Hope this gives you some ideas of things to try.
Best regards,
Michael
this is the error:
Connection: opening to outlook.office365.com:993, timeout=300, options=array()
2020-03-22 15:28:41 Connection failed. Error #2: stream_socket_client(): unable to connect to outlook.office365.com:993 (Permission denied) [/var/www/html/lib/phpmailer/src/SMTP.php line 324]
2020-03-22 15:28:41 SMTP ERROR: Failed to connect to server: Permission denied (13)
2020-03-22 15:28:41 SMTP connect() failed.
I searched in the internet but any resolution resolve
Moodle sends email over SMTP (port 587), not IMAP (port 993) so you can't just copy the settings from your smartphone.
For the proper settings, see
https://support.office.com/en-us/article/pop-and-imap-email-settings-for-outlook-8361e398-8af4-4e97-b147-6c6c4ac95353
Some additional tips (predicting your challenges):
- Sometimes you may need to also specify the port on host address.
Example: outlook.office365.com:587
- Be sure that your no-reply email address is one that actually exists.
- Use TLS.
Hope this helps.
Best regards,
Michael
Logging is not available when using PHP mail() function. However, may find logs on your server. Most common locations on Linux include:
/var/log/maillog
/var/log/mail.log
/var/adm/maillog
/var/adm/syslog/mail.log
Alernatively, a custom location may be specified using the mail.log setting in php.ini.
Success
The Moodle test message was successfully accepted by PHP Mail.
From : admin@xxxxxxxxxx.ca
To : xxxxxxxx@gmail.com
plz guide anyone . using moodle latest 3.9