GitLab eingehende E-Mails konfigurieren
In vielen DevOps-Workflows ist die Integration von E-Mail-Systemen ein essenzieller Bestandteil der automatisierten Kommunikation. GitLab bietet die Möglichkeit, eingehende E-Mails zu verarbeiten – etwa zum Erstellen von Issues oder Kommentaren direkt per E-Mail. Dies kann besonders in Umgebungen mit hoher Automatisierung oder bei der Integration bestehender Support-Systeme sinnvoll sein.
Voraussetzungen
- GitLab Server
- E-Mail-Subadresse (empfohlen) oder Catch-all-Postfach
- Optional: Geschützte Domain (creoline E-Mail-Protection)
E-Mail-Subaddressing
E-Mail-Subaddressing erlaubt es, zu einer bestehenden E-Mail-Adresse zusätzliche Kennzeichnungen hinzuzufügen, ohne neue Postfächer anzulegen. Wird E-Mail-Subaddressing unterstützt, können E-Mails für incoming@mail.creoline.de beispielsweise auch über incoming+addon@mail.creoline.de an diese versendet werden.
Es wird von Anbietern wie Gmail, Google Apps, Yahoo! Mail, Outlook.com und iCloud sowie vom Postfix-Mailserver unterstützt, den Sie vor Ort betreiben können. Microsoft Exchange Server unterstützt keine Unteradressierung und Microsoft Office 365 unterstützt standardmäßig keine Unteradressierung.
Dieser Hilfecenter-Artikel verwendet zur Vereinfachung als Beispiel-Domain mail.creoline-demo.de, welche Sie bei jedem Schritt logischerweise durch Ihre Domain ersetzen müssen.
Sicherheitshinweis zu verwendeter Domain
https://docs.gitlab.com/ee/administration/incoming_email.html#security-concerns
Vorbereitung Ihrer der DNS-Zone
Legen Sie in Ihrer DNS-Zone folgende DNS-Einträge an:
RR-Typ: A
Host: mail
Wert: <Ihre Plesk-Server IPv4>
TTL: 3600 RR-Typ: AAAA
Host: mail
Wert: <Ihre Plesk-Server IPv6>
TTL: 3600 RR-Typ: MX
Host: mail
Wert: mail.creoline-demo.de
TTL: 3600 Vorbereitung E-Mail-Domain (Beispiel: Plesk-Server)
Dieser Hilfecenter-Artikel verwendet zur Vereinfachung als Beispiel-Domain mail.creoline-demo.de, welche Sie bei jedem Schritt logischerweise durch Ihre Domain ersetzen müssen. Als Postfach für die eingehenden E-Mail wird in dieser Anleitung incoming@mail.creoline-demo.de verwendet.
Von der Verwendung der externen Domain, worüber Ihre Web UI aufgerufen wird, ist aus Sicherheitsgründen abzuraten, weswegen ein Subdomain der externen Domain als E-Mail-Domain verwendet werden sollte oder grundsätzlich eine andere.
| Web UI Domain | Eingehende E-Mail-Domain | Sicherheit |
|---|---|---|
| creoline-demo.de | creoline-demo.de | unsicher |
| creoline-demo.de | mail.creoline-demo.de | sicher |
| creoline-demo.de | creoline-mailing.de | sicher (zwei Domains benötigt) |
Plesk Domain anlegen
Legen Sie in Plesk eine Domain an, welche für eingehende E-Mails verwendet werden soll. Praktisch gibt es hier keine Einschränkt, das folgende Beispiel verwendet die Subdomain mail.creoline-demo.de.
Plesk E-Mail-Postfach anlegen
Nachdem Sie Ihre E-Mail Domain erstellt haben, legen Sie ein E-Mail-Postfach an, als Beispiel: incoming.
GitLab Konfigurationsdatei anpassen
Die Anpassungen müssen ausschließlich in der gitlab.rb vorgenommen werden, welche Sie in den Konfigurationsdateien Ihre GitLab-Server finden und bearbeiten können.
Die folgenden Einstellungen müssen in der gitlab.rb angepasst oder auskommentiert werden, wenn eine vollständig eigene Definition erfolgt.
Eingehende E-Mails aktivieren
gitlab_rails['incoming_email_enabled'] = true Eingehende E-Mail-Adresse festlegen
Der Postfach incoming muss bei Ihrem E-Mail-Anbieter entsprechend angelegt worden sein.
gitlab_rails['incoming_email_address'] = "incoming+%{key}@gitlab.example.com" Eingehende E-Mail-Adressen E-Mail festlegen
gitlab_rails['incoming_email_email'] = "incoming" # anpassen sofern anderes Postfach verwendet wurde Sofern Sie hier einen externen E-Mail-Anbieter verwenden, sollte laut GitLab die vollständige E-Mail-Adresse angegeben werden. Bei Self-Hosted E-Mail-Servern ist dies normalerweise ausschließlich der Benutzername. Siehe Kommentar über der Einstellung in der gitlab.rb. Sofern wie hier das Plesk-Beispiel verwendet wird, bleibt es beim einzelnen Benutzernamen ohne E-Mail-Domain.
Eingehendes E-Mail-Adressen Passwort festlegen
gitlab_rails['incoming_email_password'] = "<postfach-passwort>" Eingehenden E-Mail Port (verschlüsselt, empfohlen)
SSL/TLS
gitlab_rails['incoming_email_port'] = 993
gitlab_rails['incoming_email_ssl'] = false
gitlab_rails['incoming_email_start_tls'] = true STARTTLS
gitlab_rails['incoming_email_port'] = 143
gitlab_rails['incoming_email_ssl'] = false
gitlab_rails['incoming_email_start_tls'] = true Eingehenden E-Mail Port (unverschlüsselt, nicht empfohlen)
Für SSL-Verschlüsselung sollte hier IMAP-Port 993 gewählt werden, ohne Verschlüsselung IMAP-Port 143.
gitlab_rails['incoming_email_port'] = 143
gitlab_rails['incoming_email_ssl'] = false
gitlab_rails['incoming_email_start_tls'] = false Vollständiges Beispiel
gitlab_rails['incoming_email_enabled'] = true
# The email address including the %{key} placeholder that will be replaced to reference the
# item being replied to. This %{key} should be included in its entirety within the email
# address and not replaced by another value.
# For example: emailaddress+%{key}@gitlab.example.com.
# The placeholder must appear in the "user" part of the address (before the `@`).
gitlab_rails['incoming_email_address'] = "incoming+%{key}@gitlab.example.com"
# Email account username
# With third party providers, this is usually the full email address.
# With self-hosted email servers, this is usually the user part of the email address.
gitlab_rails['incoming_email_email'] = "incoming"
# Email account password
gitlab_rails['incoming_email_password'] = "<postfach-passwort>"
# IMAP server host
gitlab_rails['incoming_email_host'] = "gitlab.example.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
# Whether the IMAP server uses StartTLS
gitlab_rails['incoming_email_start_tls'] = false
# The mailbox where incoming mail will end up. Usually "inbox".
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60 GitLab rekonfigurieren
sudo gitlab-ctl reconfigure Eingehende E-Mails testen
sudo gitlab-rake gitlab:incoming_email:check
Checking Incoming Email ...
Incoming Email: ... Checking Reply by email ...
IMAP server credentials are correct? ... Checking incoming@mail.creoline-demo.de
yes
Mailroom enabled? ... skipped
MailRoom running? ... skipped
Checking Reply by email ... Finished
<br>
Checking Incoming Email ... Finished - GitLab eingehende E-Mails konfigurieren
- Voraussetzungen
- E-Mail-Subaddressing
- Vorbereitung Ihrer der DNS-Zone
- Vorbereitung E-Mail-Domain (Beispiel: Plesk-Server)
- GitLab Konfigurationsdatei anpassen
- Eingehende E-Mails aktivieren
- Eingehende E-Mail-Adresse festlegen
- Eingehende E-Mail-Adressen E-Mail festlegen
- Eingehendes E-Mail-Adressen Passwort festlegen
- Eingehenden E-Mail Port (verschlüsselt, empfohlen)
- Eingehenden E-Mail Port (unverschlüsselt, nicht empfohlen)
- Vollständiges Beispiel
- GitLab rekonfigurieren
- Eingehende E-Mails testen