Applicable to:
- Plesk for Linux
Question
How to configure Postfix to send emails using SendGrid in Plesk?
Answer
Starting with Plesk Obsidian 18.0.64, Smarthost can be configured via Plesk interface. Configuring a smarthost is a server-wide feature. For this feature to be implemented on per domain basis please vote for the following UserVoice.
Warning: The configuration below is not compatible with the Plesk Email Security extension. Consider removing it before applying the changes below.
1. Choose a reputable SMTP relay service (for example, SendGrid, Mailgun, Mailjet, or any other) and create an account there.
3. Go to Tools & Settings > Smarthost (under “Mail”).
4. Select the “Send users’ mail via a smarthost” checkbox.
5. In the corresponding field, specify the IP address or hostname of a smarthost (for example, 192.0.2.1 or smtp.sendgrid.net).
For more detailed steps please refer to the following documentation page:
-
Connect to the server via SSH.
-
Define which MTA is installed on the server and switch to Postfix if necessary.
-
Create a backup of the original
/etc/postfix/main.cf
configuration file and open it with a text editor:# cp -a /etc/postfix/main.cf{,.original}
# vi /etc/postfix/main.cf -
Modify the following:
-
Add the SendGrid SMTP service as relayhost to the
/etc/postfix/main.cf
configuration file:CONFIG_TEXT: relayhost = [smtp.sendgrid.net]:2525
Note: That port 2525 is used because the outbound connections on ports 25, 587 are not allowed on Google Compute Engine.
-
Add the following lines at the end of the file:
CONFIG_TEXT: smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
header_size_limit = 4096000
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
Additional step for Google Cloud instancesCheck if the following parameters exist and if so, comment them out by adding a hashtag sign in the beginning of the line:
default_transport = error
relay_transport = errorCommented out directives
#default_transport = error
#relay_transport = error -
-
After the parameters are set, make sure that there are no duplicate directives that can break the configuration:
# cat /etc/postfix/main.cf | grep -E "relayhost|smtp_sasl_auth_enable|smtp_sasl_password_maps|smtp_sasl_security_options|smtp_sasl_tls_security_options|smtp_tls_security_level|header_size_limit"
Comment out/remove duplicate directives if there are some.
-
Generate the SASL password map using the API key from the SendGrid panel:
Note: Replace <your_SendGrid_API_Key_value> in the command below with the real API Key value:
# echo [smtp.sendgrid.net]:2525 apikey:<your_SendGrid_API_Key_value> >> /etc/postfix/sasl_passwd
-
Use the
postmap
utility to generate a.db
file:# postmap /etc/postfix/sasl_passwd
-
Verify that the
.db
file has been created:# ls -l /etc/postfix/sasl_passwd*
-rw------- 1 root root ... /etc/postfix/sasl_passwd
-rw------- 1 root root ... /etc/postfix/sasl_passwd.db -
Set proper permissions on the
.db
file:# chmod 600 /etc/postfix/sasl_passwd.db
-
Remove the file containing SendGrid API Key as it is no longer needed:
# rm /etc/postfix/sasl_passwd
-
Reload Postfix service to apply changes:
# service postfix restart
Comments
0 comments
Please sign in to leave a comment.