Delivery Status Notification (DSN)

Wie bereits im Artikel E-Mail mit verschlüsselter Übertragung beschrieben wurde, unterstützt CONZEPT 16 ab der Version 5.7.03 den Versand von verschlüsselten E-Mails. Als weitere Neuerung können in CONZEPT 16 ab dieser Version “Delivery Status Notification“-Kommandos verwendet werden.


Unter Delivery Status Notification (DSN) versteht man eine E-Mail des Mailservers, welche an den Absender adressiert ist und diesen über den Verlauf der Zustellung unterrichtet. DSNs werden nicht nur ausgelöst, wenn eine E-Mail endgültig nicht zugestellt werden konnte (Permanent Failure), sondern auch, wenn diese vorübergehend nicht zugestellt werden kann (Persistent Transit Failure) oder erfolgreich zugestellt wurde (Success). Allerdings unterstützen nicht alle Mailserver DSNs.

Innerhalb von CONZEPT 16 werden mit dem Befehl MailData() der Nachrichtenkopf, der Nachrichteninhalt und die Anhänge gesetzt. Der Nachrichtenkopf muss mindestens den Absender und einen Empfänger der Nachricht enthalten. Bei diesen Absender- und Empfängeradressen können die “Delivery Status Notification”-Kommandos verwendet werden. Diese sind nach RFC (Request for Comments) 3461 definiert und werden als String übergeben.

DSN-Kommandos bei Absender

Bei der Funktion MailData() mit der Option _SmtpFrom kann das DSN-Kommando RET oder ENVID übergeben werden. RET legt fest, wie viel von der originalen Nachricht wieder zurück gesendet wird. Es besteht die Option den kompletten Text (FULL) oder nur den Kopf der Nachricht (HDRS) zurück zu senden.
Bei ENVID handelt es sich um eine eindeutige Kennung, welche vom Verfasser frei gewählt werden kann. Diese hilft bei der Identifikation der E-Mail.

DSN-Kommandos bei Empfängern

Über die Funktion MailData() mit der Option _SmtpTo, _SmtpCC oder _SmtpBCC kann die Bedingung für die Benachrichtigung definiert werden. Das DSN-Kommando NOTIFY ist das eigentliche Herz der DSN. Es sagt dem Server unter welchen Umständen er eine DSN-Nachricht versenden soll. Folgende Parameter können übergeben werden:

  • SUCCESS
    Versendet eine DSN, wenn die Nachricht erfolgreich zugestellt werden konnte.
  • FAILURE
    Versendet eine DSN, wenn die Nachricht nicht zugestellt werden konnte.
  • DELAY
    Versendet eine DSN, wenn sich die Zustellung verzögert hat.
  • NEVER
    Wird angegeben, wenn kein DSN-Versand erwünscht ist.Die ersten drei Parameter können beliebig miteinander kombiniert werden. Der letzte Parameter muss für sich allein stehen.

Achtung!
Eine positive Rückmeldung “NOTIFY=SUCCESS” belegt nur, dass die E-Mail den Verantwortungsbereich des Empfängers erreicht hat. Da eine positive DSN lediglich die erfolgreiche Platzierung der E-Mail auf dem Mailserver des Empfängers bestätigt, kann aus ihrem Erhalt nicht geschlossen werden, dass die betroffene E-Mail den Empfänger erreicht bzw. von diesem wahrgenommen wird.
DSN-Kommando ORCPT: Hier wird die E-Mail-Adresse des originalen Absenders angegeben. Das ermöglicht zu ermitteln von welcher Adresse die E-Mail ursprünglich versandt wurde, wenn diese weitergeleitet wurde. Vor der E-Mail Adresse muss ein Adress-Typ angegeben werden.
Die DSN-Kommandos können für jeden Empfänger einzeln zugewiesen werden. Dies hat den Vorteil, dass individuell entschieden werden kann, unter welchen Umständen eine DSN-Nachricht versendet werden soll. Zum besseren Verständnis ein kleines Beispiel:

{
   // E-Mail öffnen
   tMail # MailOpen(_MailSMTP, aHostName, aHostPort, 0, aUserName, aUserPass);
   // E-Mail geöffnet
   if (tMail > 0)
   {
      ErrSet(_ErrOK);
      try
      {
         // Absender einstellen
         tMail->MailData(_SmtpFrom, aFromAddr, aFromName, 'RET=HDRS ENVID=QQ1234');
         // Empfänger einstellen
         tMail->MailData(_SmtpTo, aToAddr, aToName, 'NOTIFY=SUCCESS ORCPT=rfc822;');
         // Sichtbare Kopie einstellen
         tMail->MailData(_SmtpCC, aCCAdress, aCCName, 'NOTIFY=SUCCESS,FAILURE');
         // Betreff einstellen
         tMail->MailData(_SmtpSubject, aSubject);
         // Text einstellen
         tMail->MailData(_MailBuffer | _MimeTE_8B, CnvAI(aTextPlain, _FmtInternal));
      }
      // Fehler ermitteln
      tErr # ErrGet();
      // Kein Fehler aufgetreten
      if (tErr = _ErrOK)
      {
         // E-Mail senden und schließen
         tErr # tMail->MailClose(_SmtpSendNow);
      }
      // Fehler aufgetreten
      else
      {
         // E-Mail verwerfen
         tMail->MailClose(_SmtpDiscard);
      }
   }
   ...
}
Update:

Wie bereits im Artikel CONZEPT 16-Version 5.6.06 beschrieben wurde kann innerhalb von CONZEPT 16 eine Empfangsbestätigung angefordert werden. Dies geschieht bei MailData() mit dem Parameter _SmtpNotifyTo. Im Header der E-Mail wird der Eintrag “Disposition-Notification-To” gesetzt.

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

5 Antworten

  1. Ich habe die Vorabversion inzwischen mit SMTPBeamer und Postfix getestet. Funktioniert hervorragend.

    Vielen Dank für die gute und schnelle Lösung.

  2. Das ist eine gute Erweiterung, die wir auch gut gebrauchen können.

    Eine substantielle inhaltliche Rückmeldung, ob alles funktioniert usw., kann ich natürlich erst geben, nachdem ich die Gelegenheit hatte, die Erweiterung zu testen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner