Ich habe das Problem weiter analysiert, und das ist ganz eindeutig ein Bug,
den man einem Kunden nicht zumuten kann.
Wichtig, damit keine Missverständnisse entstehen.
Der nicht existierende Empfänger muss in der gleichen Domain sein, wie der Sender
Beispiel:
Sender: Sender@domain.dw Emfpänger: Empfang@domain.de
Das Prolem ist folgendes:
in wmime/src/vmime/net/smtp/SMTPTransport.cpp
routine SMTPTransport::sendEnvelope
wird in Zeile 286resp = m_connection->readResponse()
ein Fehler zurückgemeldet und die routine mit Exception beendet.
Soweit noch nicht schlimm,
aber in gromox/exch/emsmdb/common_util.cpp zeile 1506 wird im Fehlerfall
das Entfernen der Mail aus dem Ordner Postausgang nicht ausgeführt.
Deswegen wird die Meldung im Grommunio Server nicht aus dem ordner Postausgang entfernt.
Outlook entfernt aber die Meldung im Ordner Postausgang im Cache.
Der Ordner Postaustausgang wird nicht synchronisert (habe ich getestet).
Deswegen bleibt die Mail im Server im Ordner Posausgang stehen, und ist in Outlook nicht zu sehen.
Es gibt einen einfachen Bugfix für dieses Problem.
Habe ich programmiert und er funktioniert.
Leider gibt es aber noch ein weiterws Problem:
Wird die Mail an mehrere Empfänger geschickt und ein Empfänger mit der gleichen
Domain wie der Sender exisiert nicht, wird die komplette mail nicht gesendet.
Abbruch in SMTPTransport::sendEnvelope
In der Liste der nicht erreichbaren Emfänger sind alle Emfänger aufgelistet.
Kein Hinweis, welcher Emfänger nicht erreicht wurde.
So etwas kann mann nicht lassen.
Wenn das bei jemanden funktioniert, dann hat er eine alte Version.
In der neusten Version funktioniert es auf jeden Fall nicht.
Dieser Bug sollte dringend beseitigt werden.
Ich bin gerade drann am Code. Aber im Falle der Mail mit
mehreren Emfänger sind das größere Änderungen.
Der Fall mit einem Emfänger ist recht einfach.