Page 1 of 1

HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Tue May 03, 2016 5:56 pm
by ShaunWHD
I've noticed this seems to be a common issue, so I'm sharing the steps I took to get email successfully sending (and receiving) using SendGrid with VestaCP and Exim on CentOS 6.

Make sure that your domain is setup and validated in SendGrid and that your DNS/MX records are properly configured (use mxtoolbox.com to scan your domain. it will tell you if you need to fix anything.). It's also a good idea to make sure your reverse DNS is accurate.

EXIM CONFIGURATION
VestaCP replaces exim.conf with its own version that allows it to properly route emails for VestaCP accounts, so it's important to be careful when editing. Best practice is to backup exim.conf file before editing it

Code: Select all

cp /etc/exim/exim.conf /etc/exim/exim.conf-bkup
1. Open Exim Configuration

Code: Select all

nano /etc/exim/exim.conf

2. You must configure Exim to Authenticate when sending email, or else you'll end up with 550 Authentication errors.
FIND

Code: Select all

host_lookup = *
ADD BELOW

Code: Select all

auth_advertise_hosts = *

3. SendGrid Entries: Add the Credentials, Route and Transport to exim.conf
FIND

Code: Select all

begin authenticators
ADD BELOW

Code: Select all

sendgrid_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : sendgridusername : sendgridpassword
replace sendgridusername and sendgridpassword with your SendGrid login credentials.

FIND

Code: Select all

begin routers
ADD BELOW

Code: Select all

send_via_sendgrid:
  driver = manualroute
  domains = ! +local_domains
  transport = sendgrid_smtp
  route_list = "* smtp.sendgrid.net::587 byname"
  host_find_failed = defer
  no_more
FIND

Code: Select all

 begin transports
ADD BELOW

Code: Select all

sendgrid_smtp:
  driver = smtp
  hosts = smtp.sendgrid.net
  hosts_require_auth = smtp.sendgrid.net
  hosts_require_tls = smtp.sendgrid.net

4. Save exim.conf and exit

5. Restart Exim

Code: Select all

/etc/init.d/exim restart
You should now be able to successful send emails using the SendGrid service.

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Tue May 31, 2016 11:02 am
by amitz
Hello,

can you tell how to this on centos 7?

I just tried the same steps in centos 7, but doesnt work.

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Fri Jun 03, 2016 1:14 am
by amitz
Tried again the same steps and it works also on centos 7 :)
Thanks

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Mon Aug 29, 2016 6:48 am
by KhaoMaNee
@ShaunWHD Hey, thanks for the guide!
After I've done the settings, I tested it with mail -s, it was able to send to my email. However, it won't send any notification after doing backups in vestaCP. Is it suppose to send email to my catchall email or admin email?

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Wed Nov 09, 2016 4:57 am
by Hassan
Hello thanks for the share, i have implemented the method but now i can send email but not reciving emails

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Wed Sep 13, 2017 7:37 pm
by dkyadav.et
Hassan wrote:Hello thanks for the share, i have implemented the method but now i can send email but not reciving emails
thank finally its working for me after so many attempts to modify configs

but I have also same problem now how can i receive mails. sending mail is working on port 2525,
how and where i can receive mail

Please help

thanks in advance.

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Wed Dec 13, 2017 12:52 am
by ouchdigital
ShaunWHD wrote:I've noticed this seems to be a common issue, so I'm sharing the steps I took to get email successfully sending (and receiving) using SendGrid with VestaCP and Exim on CentOS 6.

Make sure that your domain is setup and validated in SendGrid and that your DNS/MX records are properly configured (use mxtoolbox.com to scan your domain. it will tell you if you need to fix anything.). It's also a good idea to make sure your reverse DNS is accurate.

EXIM CONFIGURATION
VestaCP replaces exim.conf with its own version that allows it to properly route emails for VestaCP accounts, so it's important to be careful when editing. Best practice is to backup exim.conf file before editing it

Code: Select all

cp /etc/exim/exim.conf /etc/exim/exim.conf-bkup
1. Open Exim Configuration

Code: Select all

nano /etc/exim/exim.conf

2. You must configure Exim to Authenticate when sending email, or else you'll end up with 550 Authentication errors.
FIND

Code: Select all

host_lookup = *
ADD BELOW

Code: Select all

auth_advertise_hosts = *

3. SendGrid Entries: Add the Credentials, Route and Transport to exim.conf
FIND

Code: Select all

begin authenticators
ADD BELOW

Code: Select all

sendgrid_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : sendgridusername : sendgridpassword
replace sendgridusername and sendgridpassword with your SendGrid login credentials.

FIND

Code: Select all

begin routers
ADD BELOW

Code: Select all

send_via_sendgrid:
  driver = manualroute
  domains = ! +local_domains
  transport = sendgrid_smtp
  route_list = "* smtp.sendgrid.net::587 byname"
  host_find_failed = defer
  no_more
FIND

Code: Select all

 begin transports
ADD BELOW

Code: Select all

sendgrid_smtp:
  driver = smtp
  hosts = smtp.sendgrid.net
  hosts_require_auth = smtp.sendgrid.net
  hosts_require_tls = smtp.sendgrid.net

4. Save exim.conf and exit

5. Restart Exim

Code: Select all

/etc/init.d/exim restart
You should now be able to successful send emails using the SendGrid service.
Hey Shaun, thank you for this great post. I've worked through it and I've got emails sending through SSH, though I'm not sure if I've got myself stuck with the MX records. (I'm also still getting a 550 error in Roundcube webmail and can't send emails through this).
I'm running on GCE and through mxtoolbox.com it's showing up as DNS records not found. I think I need to update the MX records directly in Google Cloud DNS, but I'm not sure if they should link to Sendgrid or if they should link somewhere else.
Did you have any idea what I should create for the MX records for this Instance? Or if they would be the problem that's causing the 550 error in mailweb?

Thanks in advance,

Bernard

Re: HOW TO: Configure VestaCP/Exim to send email using SendGrid (CentOS 6)

Posted: Mon Apr 30, 2018 7:52 am
by IsaacNchito
Hi all

I faced some difficulty after activating my sendgrid account and thought I should share the solution.

after paying for your sendgrid account emails still do not go through until you change the sendgrid username and password on this line as mentioned earlier

client_send = : sendgridusername : sendgridpassword

note that the username should be apikey and the password is the key generated by sengrid that you would have copied.

Hope it helps you all.