E-Mail-Benachrichtigung
INFO
Diese Seite beschreibt die Konfiguration des E-Mail-Kanals für ausgehenden Benachrichtigungen: die SMTP- (oder lokale MTA-) Einstellungen, die Zammad zum Senden seiner eigenen internen Benachrichtigungen verwendet, wie z.B. dass Ihnen ein Ticket zugewiesen wurde, sowie die zugehörige lokale Absenderidentität (EmailAddress). Dies unterscheidet sich von einem normal E-Mail-Kanal, was eine separate Funktion ist und auf dieser Seite nicht behandelt wird.
Auflisten
Erforderliche Berechtigung: admin.channel_email
GET-Request gesendet: /api/v1/channels_email
Hierbei handelt es sich um einen kombinierten Index: Er gibt den bzw. die Benachrichtigungskanäle, den bzw. die Ticket-Postfachkanäle sowie die lokalen Absenderadressen in einer einzigen Antwort zurück. Die nachstehende Antwort wurde auf die Felder gekürzt, die für die Konfiguration von Benachrichtigungs-E-Mails relevant sind.
Details
json
// HTTP-Code 200 OK
{
"notification_channel_ids": [
1
],
"account_channel_ids": [],
"email_address_ids": [
1
],
"assets": {
"Channel": {
"1": {
"id": 1,
"group_id": null,
"area": "Email::Notification",
"options": {
"outbound": {
"adapter": "smtp",
"options": {
"host": "smtp.example.com",
"port": 25,
"ssl": true,
"user": "",
"password": "",
"domain": "zammad.example.com"
}
}
},
"active": true
},
"2": {
"id": 2,
"group_id": null,
"area": "Email::Notification",
"options": {
"outbound": {
"adapter": "sendmail"
}
},
"active": false
}
}
},
"channel_driver": {
"email": {
"inbound": {
"imap": "IMAP",
"pop3": "POP3"
},
"outbound": {
"smtp": "SMTP - configure your own outgoing SMTP settings"
}
}
},
"config": {
"notification_sender": "\"Zammad Helpdesk\" <noreply@zammad.example.com>"
}
}INFO
Pro Benachrichtigungseinrichtung kann jeweils nur ein Kanal active: true sein. Die Konfiguration eines neuen Kanals (siehe Konfigurieren unten) deaktiviert automatisch den zuvor aktiven Kanal. In der obigen Antwort ist sendmail (ID 2) nun active: false, da smtp (ID 1) danach konfiguriert wurde.
Konfigurieren
Erforderliche Berechtigung: admin.channel_email
POST-Request gesendet: /api/v1/channels_email_notification
INFO
übergeben Sie die Adaptereinstellungen in einem Top-Level-options-Schlüssel wie unten gezeigt. Andere Key-Namen wie new_configuration (der Parametername der internen Service-Klasse Service::System::SetEmailNotificationConfiguration), scheitern nicht mit einem Validierungsfehler. Die Anfrage schlägt stattdessen mit einem undefined method 'downcase' for nil Fehler fehl.
Details
json
{
"adapter": "smtp",
"options": {
"host": "smtp.example.com",
"port": 25,
"ssl": true,
"user": "",
"password": ""
}
}INFO
Dieser Aufruf erfüllt zwei Aufgaben: Er testet die Verbindung live und versendet dabei als Nebeneffekt eine echte Test-E-Mail. Ist der Test erfolgreich, wird die Konfiguration im selben Aufruf als aktiver Benachrichtigungskanal gespeichert. Es gibt keinen separaten "Speichern"-Schritt; notification_channel_ids in /api/v1/channels_email spiegelt den neuen Kanal sofort wider.
Kann die Verbindung nicht hergestellt werden, lautet die Antwort 200 OK mit result: invalid und die gespeicherte Konfiguration bleibt unverändert.
Details
json
// HTTP-Code 200 OK
{
"result": "invalid",
"settings": {
"adapter": "smtp",
"options": {
"host": "smtp.example.com",
"port": 25,
"ssl": true,
"user": "",
"password": "",
"domain": "zammad.example.com",
"enable_starttls_auto": true
},
"controller": "channels_email",
"action": "notification"
},
"message": "Connection refused - Network connection to smtp.example.com could not be established: Connection refused - connect(2) for smtp.example.com:25"
}INFO
POST /api/v1/channels_email_probe ist keine Alternative zu diesem Endpunkt für eine ausschließliche Benachrichtigungs-Einrichtung. Es validiert immer ein vollständiges eingehendes und ausgehendes Postfach (EmailHelper::Probe.full). Das Senden einzeln ausgehender SMTP-Einstellungen dazu gibt {"result": "failed", "reason": "inbound failed"} zurück, selbst wenn die ausgehenden Einstellungen korrekt sind.
Details
json
// HTTP-Code 200 OK
{
"result": "failed",
"reason": "inbound failed"
}Absenderadresse
Die lokale Absenderidentität, die für ausgehende Benachrichtigungs-E-Mails verwendet wird, wird als EmailAddress verwaltet.
Auflisten
Erforderliche Berechtigungen: admin.channel_email oder ticket.agent
GET-Request gesendet: /api/v1/email_addresses
Gibt ein Array von Objekten zurück, die jeweils der Struktur des einzelnen Objekts entsprechen, das in der untenstehenden_Show_ Response dargestellt ist.
Details
json
// HTTP-Code 200 OK
[
{
"id": 1,
"channel_id": 1,
"name": "Zammad Support",
"email": "zammad@example.com",
"active": true,
"note": "Default outbound sender address.",
"preferences": null,
"updated_by_id": 3,
"created_by_id": 3,
"created_at": "2026-09-24T12:32:20.671Z",
"updated_at": "2026-09-24T12:32:20.671Z",
"group_ids": []
}
]Anzeigen
Erforderliche Berechtigungen: admin.channel_email oder ticket.agent
GET-Request gesendet: /api/v1/email_addresses/{id}
Details
json
// HTTP-Code 200 OK
{
"id": 1,
"channel_id": 1,
"name": "Zammad Support",
"email": "zammad@example.com",
"active": true,
"note": "Default outbound sender address.",
"preferences": null,
"updated_by_id": 3,
"created_by_id": 3,
"created_at": "2026-09-24T12:32:20.671Z",
"updated_at": "2026-09-24T12:32:20.671Z",
"group_ids": []
}Erstellen
Erforderliche Berechtigung: admin.channel_email
POST-Request gesendet: /api/v1/email_addresses
INFO
channel_id ist eine Referenz und kein Validierungsziel: Eine ID, die nicht besteht, wird akzeptiert, und die Adresse wird dann mit channel_id: null und active: false gespeichert. Adressen werden üblicherweise einem Ticket-Postfach-Kanal und nicht dem Benachrichtigungskanal zugeordnet.
Details
json
{
"email": "zammad@example.com",
"name": "Zammad Support",
"channel_id": 1,
"note": "Default outbound sender address."
}Aktualisierung
Erforderliche Berechtigung: admin.channel_email
PUT-Request gesendet: /api/v1/email_addresses/{id}
Die Form der Nutzlast ist identisch mit Create. Durch das Senden der vollständigen Create-Nutzlast an die id einer bestehenden Adresse wird dieser Datensatz direkt aktualisiert. Es wird kein Duplikat erstellt. Die Antwort ist der aktualisierte Datensatz, der die gleiche Form wie die Create-Antwort hat.
Details
json
{
"email": "zammad@example.com",
"name": "Zammad Support",
"channel_id": 1,
"note": "Default outbound sender address.",
"id": 1
}Löschen
Erforderliche Berechtigung: admin.channel_email
DANGER
Dies ist eine permanente Entfernung
Bitte beachten Sie, dass das Entfernen von E-Mail-Adressen nicht rückgängig gemacht werden kann.
Gruppen, die die gelöschte Adresse als Absenderadresse verwenden (email_address_id) werden auf keine Absenderadresse zurückgesetzt.
DELETE-Request gesendet: /api/v1/email_addresses/{id}
Details
json
// HTTP-Code 200 OK
{}