Configuración del correo
| Existe documentación diferente para varias versiones de Moodle: Esta documentación es para Moodle 5.1 y más recientes. La documentación anterior se encuentra en 45/Configuración del correo y 28/Configuración del correo entrante |
Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!. ( y otras páginas pendientes)
Outgoing mail configuration
Settings related to mail sent by Moodle can be found in Outgoing mail configuration in Site admin > Server > Email.
Moodle requires an email server to send system messages such as forum posts and assignment feedback.
Sending emails from your site
If you want to use your own email address (e.g., info@yourdomain.com) to send these messages, you can connect your external email account by following these steps:
Note for MoodleCloud users: By default, MoodleCloud sites send these from noreply@yoursite.moodlecloud.com. MoodleCloud provides the interface to connect your mail, but does not host your email service. If you encounter issues, please contact your email provider to verify your connection settings.
Overview of the steps
- Gather what you will need from your email provider
- Set up Moodle to send emails from your custom domain
- Send yourself a test email to make sure it’s working
Step 1: Gather what you will need from your email provider
To send emails from your custom domain, you must have an external mail service. You will need the following details from your email provider:
- SMTP host: The server address used for sending mail.
- Port number: The number used to connect (e.g., 465 or 587)
- Security type: The type of protection used (None, SSL, or TLS)
- Username and password: The login details for your email account
Step 2: Set up Moodle to send emails from your custom domain
Once you have your mail server details, log in to your Moodle site as an administrator and follow these steps:
- Go to Site Administration > Server > Email > Outgoing mail configuration
- Enter your SMTP host followed by the port number (e.g. smtp.example.com:465)
- Select the correct security type provided by your host
- Enter your email account username and password
- In the No-reply address field, enter the email address you want recipients to see. This does not need to match your subdomain (e.g., if your custom domain is learn.yourdomain.com, you can still use noreply@yourdomain.com).
- Save the settings by clicking the Save button at the bottom of the page before proceeding to the next step.
Advanced settings
These settings are optional or for more complex setups:
- Allowed email domains: Enter domains allowed by your mail server so that forum notifications use the users' real addresses.
- Use a wildcard for multiple domains (e.g., *.example.com) or a strict match (e.g., example.com).
- If set, Moodle uses the user's address in "From" and "Reply to" if the email matches the domain and the user's display settings allow it. Otherwise, it uses the no-reply address.
- Email via information: Adds "via" info to the From section (e.g., Name (via shortname) <noreplyaddress>). 'shortname' is the site's short name from front page settings.
- SMTP Auth type: How Moodle logs in to the server. Most services use LOGIN or PLAIN.
- SMTP session limit: How many emails are sent before the system resets the connection.
- Email charsets: The character encoding used for messages (standard is UTF-8).
NOTE: You can also use Google Gmail servers or Amazon AWS SES to set up an SMTP relay for your outbound emails. For example, see this post on sending emails from Moodle with Google's mail relay (not a Gmail account).
Step 3: Send yourself a test email to make sure it’s working
It is important to verify that your settings are correct so that your users don't miss important notifications.
- Scroll to the Test outgoing mail configuration section of the Outgoing mail configuration page
- Click the Test outgoing mail configuration link
- Enter your own email address and click Send a test message
If the setup is working correctly, you should receive the test email.
DKIM
For advanced DKIM setup this is usually done at the MTA such as postfix e.g. using a 'milter' like opendkim.
However, there are advantages to doing this in Moodle directly such as when you have limited control over the way your email is being sent. Also by having it in Moodle it can be easier to manage.
In 3.10 / 4.0 a new setting was added that makes it possible to sign emails at the Moodle level and it requires setting up the private certificates and putting them in a known location where Moodle can find them. Because emails could be sent from a variety of From email addresses the location contains the domain in its path and you can provide as many certificates as needed but this is an uncommon use case.
The most common setup
The simplest and fairly typical setup is where all emails are sent from the noreply email. In this setup we will give instructions on a linux setup such as debian or ubuntu.
$CFG->noreplyaddress = 'noreply@moodle.example.com'
In this case you need to choose a DKIM selector which is arbitrary but is often based on a date as the best practice is to rotate them on a periodic basis.
Lets say we have chosen a selector of '2020sep'.
Now in sitedata we need to create a folder to hold the DKIM certificate with a subdirectory matching the domain:
mkdir -p /path/to/sitedata/dkim/moodle.example.com
Next in this directory generate the private key and public key DNS record using the opendkim-genkey tool:
opendkim-genkey -b 2048 -r -s 2020sep -d moodle.example.com -v
This should result in two files like this:
/path/to/sitedata/dkim/moodle.example.com/2020sep.txt
/path/to/sitedata/dkim/moodle.example.com/2020sep.private
Only the .private file is used by Moodle, the .txt file is the TXT record which you need to add to your DNS. To confirm that it is all correct there is a great public tool where you can enter the domain and DKIM selector and it will confirm the record looks like it is in the correct shape.
https://mxtoolbox.com/dkim.aspx
Once this is in place then use the email testing tool in moodle to send a test email, it can be useful to turn on the debugsmtp setting.
/admin/testoutgoingmailconf.php
You should see the DKIM signature in the email headers. The email server receiving the email should also have validated this signature as well and added another header with the results of this validation.
i.e. in Gmail open the email, click the '...' on the right, then 'Show original' and in the headers it should say:
DKIM: 'PASS' with domain moodle.example.com
ℹ️ If your system does not have the opendkim-genkey command available, you may also try like:
mkdir -p dkim/learning.example.com
cd dkim/learning.example.com
openssl genrsa -out learning.private 2048
openssl rsa -in learning.private -outform PEM -pubout -out learning.public
This example assumes your domain is "learning.example.com" and your DKIM selector is "learning". A DKIM selector allows you to send emails on one domain name, like example.com, from both your Moodle software running on one server with one key as well as other software elsewhere with another key.
Next you will need to create a DNS TXT entry for DKIM. You will need only public key to do this. We do not provide the algorithm here, but we note that a popular chatbot is able to format this correctly for you if you paste in the public key and ask it to provide a DKIM TXT record.
Test outgoing mail configuration
A link is available to send yourself a test email to check everything is working correctly.
Incoming mail configuration
If incoming mail processing is enabled in 'Incoming mail configuration' in Site administration, then users are able to reply to forum posts via email and send files to their private files as email attachments.
Mailbox configuration
It is important to have a dedicated email address here. Don't use one you normally use for your personal emails. You do not need to add the @ sign. If you have set up the email mountorangeschool@example.com then it would be entered as in the following screenshot:

Incoming mail server settings
As an example, if you are using gmail you would use IMAP.gmail.com in the Incoming mail server (messageinbound_host) field. (If using gmail you also need to make sure that you've enabled IMAP for yor gmail account - see https://support.google.com/mail/troubleshooter/1668960?hl=en )
Note1: The SMTP server hosting the mailbox you've configured above must support plus addressing i.e. any email sent to mountorangeschool+blahblahblah@example.com is still delivered to mountorangeschool@example.com.
Note2 : The username and password here must relate to the settings you entered earlier in Mailbox configuration. So if your address was mountorangeschool@example.com and your username is mountorangeschool, then enter your username in this section along with the password you use to get into this email account.
Note 3: You may also need to make sure that your host does not block outbound connections to the IMAP ports (some do by default).
Note 4: If using gmail, you may find that IMAP does not work with Google's higher security setting. If IMAP is not working with gmail, check out https://support.google.com/accounts/answer/6010255?hl=en-GB and follow the configuration steps available at MDL-61921
Message handlers
Email to Private files
- If you enable this, then users will be able to send attachments via email directly to their private files. See Private files for details of how the feature works.
- Each user will be provided with an address in their Private files to which they send the email and attached files. You can set the default expiry period for this address here.
- Checking the 'Validate sender address' box will mean that if an email is sent to a user's private files from a different account from that registered with user in Moodle, then Moodle will check first before allowing the file to be stored in the user's Private files.
Invalid recipient handler
If a valid message is received but the sender cannot be authenticated, the message is stored on the email server and the user is contacted using the email address in their user profile. The user is given the chance to reply to confirm the authenticity of the original message.This handler processes those replies.
It is not possible to disable sender verification of this handler because the user may reply from an incorrect email address if their email client configuration is incorrect.
Reply to forum posts
- If you enable this, then users will be able to reply to forum posts directly from their email inbox. See the section on 'Reply to posts via email' in Using Forum for details of how the feature works.
- You must leave empty the Site administration > Server > Email > Outgoing mail configuration > Allowed email domains setting; otherwise users will see the email of the forum poster instead.
- Each user will be provided with reply-to address when they click to reply to a forum post via email. You can set the default expiry period for this address here.
See also
- Need help configuring forum's "Reply to post" feature forum discussion