Email setup gmail
Google's mail servers can be set up as the SMTP server for Moodle. This reduces or eliminates the need for an email service on a server and is especially useful if Google Apps is used by the institution using Moodle.
This will require a hack to the code.
Important warning: When sending emails, Moodle attempts to send them "From" the email address of the user writing the message, this allows the recipient to reply directly to the sender via email. Google, both in their Gmail and Apps for Education product do not allow this - so any emails sent from the system will be from the account you use to authenticate on the SMTP server. To make things more confusing, the name will be the recipients, but the email address will be the SMTP account's email address, for example: "Dr Fred Bloggs" <moodlemail@mycollege.edu>. This does not render the Gmail useless for Moodle, emails all come with a link you can click through and reply on Moodle, but it is important you understand this limitation before continuing with this setup. If you wanted to use Gmail's SMTP regardless, you would be advised to use a dedicated account for the purpose, and have an auto response so that messages to the address bounce back with an instruction to click on the link in the email and reply through Moodle.
Email settings
Location: Administration > Server > Email
SMTP hosts: smtp.gmail.com:465 NOTE: Leave out the port (:465) in 1.9.2 or lower
SMTP username: Your email address @gmail.com or your own domain if using Google Apps
SMTP password: password for the above email account
Code Modification
In your Moodle site go to /lib/phpmailer/ and modify the following file:
class.smtp.php
Around line 83 DIRECTLY after the Connect function header, insert this line immediately after the "{" :
$host = 'ssl://' . $host;
Code Modification (1.9.2 or lower)
These two additional modifications need to be made in 1.9.2 or lower as the SMTP hosts setting above will not allow the port to be included.
class.phpmailer.php
around line 162
- Change var $Port = 25; to var $Port = 465;
class.smtp.php
around line 30
- Change var $SMTP_PORT = 25; to var $SMTP_PORT = 465;
Tips and tricks
- Some sites may need the additional step of un-commenting the php_openssl.dll extension in php.ini.
Google education edition with 1.9.9
When using Google Education Edition with 1.99
The latest php mailer is paramont. If someschool.edu email at google is not accepting mails from the moodle as valid mails you need to create an SPF record at your host, allowing mail from the Central Mail server, Google and the local server which satisified Google's validation desires.
@ 14400 IN TXT "v=spf1 ip4:174.121.161.XXX include:aspmx.googlemail.com mx:c1.hostname.com ~all"
This bit is server side more than moodle so if you are on managed or shared hosting the server admin will have to do the record (try submitting a request to have the record added with full details of how and why to do so) then follow the previous the directions in this record.