Seite 1 von 2

Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 26. Apr 2019 16:14
von Jan
Hallo,

gibt es irgend eine Möglichkeit, hier eine Fehlerrückmeldung zu erhalten? Das kann doch nicht einfach nur die Rückgabe .T./.F. vom :connect() oder :send() sein. Da muß es doch mehr geben.

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand

Verfasst: Fr, 26. Apr 2019 17:10
von Tom
Was willst Du denn noch wissen? Dass die Mail angekommen ist? :razz:

Re: Rückmeldungen beim SMTPClient()-Mailversand

Verfasst: Fr, 26. Apr 2019 17:24
von Jan
Hallo Tom,

Scherzkeks 8) Nein, natürlich nicht. Aber es gibt immerhin eine ganze Reihe von SMTP-Rückmeldungen die angeben, ob der Mailversand geklappt hat (das bekomme ich ja noch vom :send() zurück, wenn auch nicht detailliert sondern nur als .T./.F.), sondern auch die Ursachen bei Fehlern. Halt der ganze 500er-Block der SMTP-Rückmeldungen in diesem Fall.

Beim HTTPClient() geht das per :getStatusCode. Warum also sollte das nicht auch beim SMTPClient() klappen? Wenn Alaska das denn wollte?

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand

Verfasst: Sa, 27. Apr 2019 2:28
von AUGE_OHR
Jan hat geschrieben: Fr, 26. Apr 2019 17:24Wenn Alaska das denn wollte?
frage Alaska doch ... :roll:

---

in DOT Net gäbe es die SmtpException Class
https://docs.microsoft.com/de-de/dotnet ... mework-4.8
aber das "spricht" Xbase++ ja nicht ...

---

wenn man bei einem API Aufruf einen Fehler bekommt kann man ihn gewöhnlich mit GetLastError() abfragen.
https://msdn.microsoft.com/en-us/librar ... s.85).aspx

Code: Alles auswählen

rc := @KERNEL32:GetLastError()
um eine "lesbare" Anzeige zu bekommen kann man diesen Code verwenden

Code: Alles auswählen

FUNCTION FormatErrorMessage( nError )               // Error as Text
LOCAL cMessage := SPACE(512)

   DEFAULT nError TO GetLastError()

   @KERNEL32:FormatMessageA( FORMAT_MESSAGE_FROM_SYSTEM,;
                   0          ,; // pointer to message source
                   nError     ,; // message ID
                   0          ,; // language ID (default)
                   @cMessage  ,; // pointer to message buffer
                   512        ,; // max size of message buffer
                   0           ) // address of array of Message inserts

   cMessage := ConvToOemCP( cMessage )

RETURN TRIM(cMessage)

Re: Rückmeldungen beim SMTPClient()-Mailversand

Verfasst: Sa, 27. Apr 2019 7:45
von Jan
Jimmy,

keines Deiner Worte ist hilfreich, da es in keinster Weise auf SMPTClient() eingeht. Ich hatte ja nicht gefragt wie ich per .NET oder API-Aufruf eine Mail versenden kann. Sondern wie ich bei SMTPClient() eine Statusmeldung erhalten kann.

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand

Verfasst: Sa, 27. Apr 2019 7:48
von Jan
Interessant. Wenn man sich das oSmtp-Objekt im Debugger anschaut, dann gibt es dort ein cBuffer. Und darin steht die gewünschte Statusmeldung - sowohl als Ziffer als auch als Langtext und weiteren Details. Ich kann also nach dem oSmtp:send() einfach ein oSmtp:cBuffer machen, da steht dann alles drin. Das ist dann z. B. bei einer ungültigen Empfangsadresse:
501 Syntax error in parameters or arguments
.123.129]
250-8BITMIME
250-AUTH LOGIN PLAIN
250 SIZE 69920427
250 STARTTLS
Sollte Alaska mal in seine Doku mit rein schreiben...

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 9:21
von ramses
Hallo Jan

hast du es geschafft die Variable cBuffer nicht nur im Debugger anzuschauen sondern auch im Programm auszuwerten?

Wenn ich auf "cBuffer" zugreifen will führt das zur Fehlermeldung "Zugriff auf Member-Variable nicht erlaubt"

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 9:42
von Jan
Carlo,

genau das ist das Problem. Debugger ja, sonst nicht.

Der Support hat mich dann auf die Hilfe zu SMTPClient() verwiesen. Dort ist im Sample eine Klasse LogWriter() implementiert. Damit klappt das dann.

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 10:58
von ramses
Hallo Jan

dann nehme ich auch den Logger Slot. Die Angaben in cBuffer hätten mir fürs Loggen jedoch besser zugesagt ....

Danke.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 11:03
von Jan
Hallo Carlo,

so isses. Hätte mir auch besser gefallen mit dem internen cBuffer. Aber wenn Alaska das so verwurstelt macht, dann müssen wir halt damit leben. Leider.

Jan

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 14:00
von ramses
Hallo Jan

eine gute alternative war bis anhin das Tool see32.dll von Marshallsoft. Leider unterstützt dieses keine SSL Verbindungen sondern benötigt dazu stunnel.exe. Genau hier liegt nun ein neues Problem. Die Provider zwingen dich nun ultimativ zum Umstieg auf Port 465 mit SSL. Das geht mit STunnel ja auch aber nicht so ohne Probleme vorallem beim Mailen aus Threads aus einem Dienst ....

Deshalb versuche ich nun den SMTPClient zu verwenden.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 14:10
von Tom
Marshallsoft funktioniert nicht mehr mit Xbase++ 2.0.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 16:48
von Martin Altmann
Tom,
bist du dir da sicher? Ich habe 2.0 im Einsatz (nicht die aktuelle Build) und sende Mails mit See4XB (sowohl unverschlüsselt, als auch verschlüsselt).

Viele Grüße,
Martin

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 16:55
von Schubi
Marshallsoft funktioniert nicht mehr mit Xbase++ 2.0.
Fake News :D
Bei uns läuft es.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Fr, 24. Mai 2019 18:00
von ramses
Hallo Tom

da irrst du. Ich habe die aktuelle see32 8.0.2 die funktioniert mit dem xbase build 2.00.1095
Leider kann diese SSL Verbindungen jedoch nur über den Zusatz sTunnel.exe ausführen.
Diese Kombination macht mir zuviele Probleme.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: So, 26. Mai 2019 17:37
von Wolfgang Ciriack
Hallo,
ich versende auch mit See4xb, klappt alles. Jetzt habe ich bei zwei Kunden, die über @web.de versenden, das Problem, dass angehängtes PDF-Dokument beim Empfänger nicht geöffnet werden können. Es kommt die Meldung, dass "....Datei beschädigt oder als Mailanhang geschickt und nicht korrekt dekodiert wurde."
Woran kann es liegen, dass das nur beim Versenden über web.de-Adressen passiert ?

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: So, 26. Mai 2019 19:36
von ramses
Hallo Wolfgang

ich versende die meisten der Mail mit einem von L&L erstellten PDF im Anhang mit see32 bis jetzt allerdings immer über einen Mail Server des Internetproviders da ist dies noch immer wenigstens noch für einige Tage über Port 25 möglich. Nun muss ich die Verbindung allerdings (zwangsmässig) auf SSL und Port 465 umstellen.......

Lass dir doch mal so Mail mit "beschädigter" PDF an dich weiterleiten und vergleiche diese mit dem Original.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Mo, 27. Mai 2019 10:30
von Tom
Mmh. Dann muss das an mir gelegen haben, jedenfalls funktionierte das nicht, und da ich bei Marshallsoft auch explizit nur Versionen für 1.9 gefunden habe, habe ich kurzerhand auf die Xbase++-Funktionalitäten umgestellt. Hätte ich also nicht machen müssen? Erstaunlich. 8)

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Mo, 27. Mai 2019 10:51
von ramses
Hallo Tom

Es ist vielleicht besser dass du umgestellt hast. Zur Kommunikation mit SSL bezw. mit Mailserver Port 465 ist See32 wegen der Abhängigkeit von STUNNEL.EXE welches zwingend benutzt werden muss und den Sorgen und Probemen damit, nicht wirklich zu empfehlen!

Da ist die Lösung von Xbase++ mit SMPTClient() wesentlich einfacher zu handeln.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Mo, 27. Mai 2019 12:15
von Werner_Bayern
ramses hat geschrieben: Mo, 27. Mai 2019 10:51 Da ist die Lösung von Xbase++ mit SMPTClient() wesentlich einfacher zu handeln.
und um Welten schneller!

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Mo, 27. Mai 2019 13:15
von ramses
Richtig Werner

UND UM WELTEN SCHNELLER!!!

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Di, 04. Jun 2019 10:50
von Wolfgang Ciriack
Mein Problem mit den Mails über web.de liegt an Anhängen mit Umlauten im Anhangsnamen :(

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Di, 04. Jun 2019 11:35
von Werner_Bayern
Servus Wolfgang,

Du hast schon

Code: Alles auswählen

oMail := MyMIMEMessage():encodeQuotedPrintable( Char2UTF8(cBody), "text/html; charset=UTF-8")
drin?

Ich kann damit einwandfrei Dateien mit Umlauten im Namen versenden.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Di, 04. Jun 2019 20:05
von Wolfgang Ciriack
Hallo Werner,
da muss ich noch mal meinen Code von See4xb durchschauen. Bisher habe ich bei keinem Kunden probleme gehabt, erst jetzt bei den beiden, die mit web.de-Mailadresse versenden. Erste Hilfe war erst einmal Ä dur Ae zu ersetzen, dann lief es.
Aber ich schau mal, wie ich das evtl. bei Marshallsoft setzen kann.

Re: Rückmeldungen beim SMTPClient()-Mailversand [Erledigt]

Verfasst: Sa, 08. Jun 2019 10:48
von Wolfgang Ciriack
Hallo Werner,
also ich bekomme das nicht hin. Versenden kann ich mit Anhang "Änderungen.pdf", kommt auch an als Mail mit richtigem Namen "Änderungen.pdf" beim Empfänger an,
wenn ich dann die PDF-Datei öffnen möchte, kommt die Meldung vom Adobe Reader: ...konnte ... nicht öffnen, da Dateityp nicht unterstüzt... oder Datei beschädigt ist (wenn sie als E-Mail-Anhang geschickt und nicht korrekt dekodiert wurde)."
Wie gesagt, nur bei Mails, die über ..@web.de verschickt werden, bei allen bisher benutzten Providern klappt es.