initial commit
This commit is contained in:
commit
ca6a4d45d1
113 changed files with 10501 additions and 0 deletions
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
date: 2015-06-01
|
||||
title: Send mail from Gitlab through Mandrill using Postfix
|
||||
slug: send-mail-from-gitlab-through-mandrill-using-postfix
|
||||
category: linux
|
||||
featured_image: http://i.imgur.com/W709cC9m.png
|
||||
---
|
||||
|
||||
I am a fan of Gitlab. While Github is great, and I [use it
|
||||
heavily](https://github.com/chriscowley), one should never be 100%
|
||||
reliant on the whims of a for-profit company. After all, their agenda is
|
||||
not the same as mine and could chang in the future. I also use it for
|
||||
projects at work where we do not necessarily want to allow public
|
||||
access.
|
||||
|
||||
Sending emails however is a little complicated. A good email server
|
||||
needs DNS and and SMTP properly configured. You then spend all your
|
||||
waking hours ensuring that you are not on any blacklists. Once you have
|
||||
done that you may even have to time to do the rest of your job.
|
||||
|
||||
[Mandrill](https://mandrillapp.com/) takes care of all this for you,
|
||||
then provides both SMTP and REST access. Gitlab, by default, uses SMTP
|
||||
to send its emails, so you simply configure your SMTP server of choice
|
||||
to use Mandrill to relay its messages. Personally I use Postfix as it is
|
||||
installed by default on RHEL/CentOS.
|
||||
|
||||
In Gitlab, there is nothing to do on a default install. It will use
|
||||
whatever your servers install MTA is. This actually means that this post
|
||||
is actually in no way related to Gitlab - Postfix/Mandrill only.
|
||||
|
||||
You will need to install `cyrus-sasl-plain`:
|
||||
|
||||
sudo yum install cyrus-sasl-plain`
|
||||
|
||||
Modify the file /etc/postfix/main.cf to contain:
|
||||
|
||||
myorigin = example.com
|
||||
smtp_sasl_auth_enable = yes
|
||||
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
|
||||
smtp_sasl_security_options = noanonymous
|
||||
smtp_use_tls = yes
|
||||
relayhost = [smtp.mandrillapp.com]
|
||||
|
||||
Next you need to get the credentials Postfix will use to connect to
|
||||
Mandrill. Go into \"Settings\" -\> \"SMTP & API Info\". Create a new API
|
||||
key for Gitlab. You account name is your username, and this API key will
|
||||
be your password. You can use any API key or a single API key for many
|
||||
services, but I use a separate key for each service. That way, if a
|
||||
service is compromised, I can just delete the key to block it.
|
||||
|
||||
<img src="/images/GYvvKrx.png" class='image-process-article-image' />
|
||||
|
||||
Create the file `/etc/postfix/sasl_passwd` containing:
|
||||
|
||||
[smtp.mandrillapp.com] <your-account-name>:<a-long-key>
|
||||
|
||||
You need to secure that, so run `chmod 600 /etc/postfix/sasl_passwd`.
|
||||
|
||||
Finally, you need to map that file and restart Postfix:
|
||||
|
||||
sudo /etc/postfix/sasl_passwd
|
||||
sudo systemctl restart postfix
|
||||
|
||||
Voila, now you should be able to send emails from the CLI and Gitlab.
|
Loading…
Add table
Add a link
Reference in a new issue