Mail senden (SSL) an localhost

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Mail senden (SSL) an localhost

Beitrag von mini990 »

Hallo,
ich suche eine Möglichkeit Mails an einen localhost Empfänger zu senden.
Via Outlook (eingeschränkt) oder Thunderbird kann ich Mails senden.
Versuche ich es mit SMTPClient, cMail, Blat (mit STUNNEL) o.ä. funktioniert es nicht.
Mein Problem ist dass ich eine Mime-Nachricht mit erweitertem Header senden muss.
Dies geht anscheinend über Thunderbird oder Outlook nicht.

Kann mir da jemand helfen?
Ich verzweifle langsam an diesem Problem...

Gruß Stefan
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Kann es sein dass SMTPClient & Co. am Zertifikat des localhost scheitern?
"Normale Mails", also mit beliebigen Adfressen funktionieren...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von brandelh »

Hast du denn einen eMAIL-SERVER auf deinem Rechner ?
Sendest du von deinem Rechner über das LOKALE email Programm an sich selbst zu der eMail Adresse ?

Die SSL Verbindung wird normalerweise vom Client zum eMail-Server aufgebaut, wenn die Verbindung besteht (verschlüsselt) wird die email unverschlüsselt durchs Netz auf den Ziel email server gesandt.
Oder beschreibe doch genauer was du unter localhost empfänger verstehst, localhost ist ja nur der standart DNS Name für 127.0.0.1 - eine IP Adresse des lokalen Rechners, die geht nie auf einen andereren Rechner.

lokale email server haben oft das problem, dass große Provider sie als spam server blockieren.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von Rolf Ramacher »

sende doch mal den code und die Fehlermeldung. ich hatte vor kurzem auch das problem das die email nicht rausging. da hatte ich den unverschlüsselten Port in stunnel eingetragen. ich sende mit TSL - klappt von Marshallsoft
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Ich versuchs mal zu erklären...

Es wird ein "KV-Connect Server" gestartet. (localhost:9443)
Über diesen Server sind bestimmte Mailadressen erreichbar.
Beispiel: Abrechnung.Test@kv-safenet.de

Sende ich eine Mail über z.B. Outlook an die o.g. Adresse funktioniert das.
Beim Absender (Outlook) ist jeweils localhost als POP3/SMTP Server eingetragen.

Versuche ich nun eine Nachricht analog zu Outlook über SMTPClient() oder cMail oder BLAT zu senden kann die
Nachricht nicht zugestellt werden.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von brandelh »

mini990 hat geschrieben: Fr, 03. Aug 2018 10:32 Es wird ein "KV-Connect Server" gestartet. (localhost:9443)
Über diesen Server sind bestimmte Mailadressen erreichbar.
Beispiel: Abrechnung.Test@kv-safenet.de
Also der "KV-Connect Server" ist eine Art von Mail-Server, der nur bestimmt interne eMails zulässt.
Der PORT 9443 dürfte meiner Meinung nach kein Standard Port sein.
mini990 hat geschrieben: Fr, 03. Aug 2018 10:32 Sende ich eine Mail über z.B. Outlook an die o.g. Adresse funktioniert das.
Beim Absender (Outlook) ist jeweils localhost als POP3/SMTP Server eingetragen.
jeweils mit dem PORT in Kombination oder ?
SERVER: localhost
PORT: 9443

oder in einem ... localhost:9443 egal.

Bist du sicher, dass die eMail an "Abrechnung.Test@kv-safenet.de" über diesen lokalen Server geht und nicht etwa ein weiterer SMTP vorhanden ist (eventuell würde dann über den zweiten, wenn der erste nicht geht).
mini990 hat geschrieben: Fr, 03. Aug 2018 10:32 Versuche ich nun eine Nachricht analog zu Outlook über SMTPClient() oder cMail oder BLAT zu senden kann die
Nachricht nicht zugestellt werden.
hast du hier den PORT richtig angegeben ?

Welche Xbase++ Version verwendest du ?
Die Asinet kann erst ab der 2.00.xxx verschlüsselte Verbindungen öffnen.
Gruß
Hubert
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Outlook: SMTP: localhost, Port: 465

Ich teste gerade SmtpClient mit Xbase 2.0

Aktueller Stand: SmtpClient macht einen Connect, kann die Mimemessage aber nicht senden.....

:banghead: :banghead: :banghead: :banghead:
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von Martin Altmann »

Du wirst wahrscheinlich die falsche Verschlüsselung ausgewählt haben bzw. die Parameter nicht korrekt haben.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von Rolf Ramacher »

m.E. kann BLAT keine Verschlüsselung.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von Rolf Ramacher »

ich habe bei stunnel 587 -
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Der Port 465 ist schon richtig. Hier kann ich ja via Thunderbird oder Outlook Mails dahin senden.

@Martin: Was meinst Du genau?

Der Connect zu einem Mailserver erfolgt doch über Benutzername und Kennwort.??

Verschlüsselung: Ich benötige TLS. Kann das SmtpClient() nicht?

Gruß Stefan
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Kann mein Problem daran liegen?

Code: Alles auswählen

Die Verbindung zwischen Primärsystem und KV-Connect Client erfolgt in jedem Fall über eine mittels TLS gesicherte
Verbindung. Dazu wird das für diesen Zweck erzeugte Zertifikat genutzt. Dieses Zertifikat findet sich im Keystore,
der im Parameter mailadapter.tls.keystore (in der config-Datei kvconnect-global.mailadapter.properties8)
angegeben ist (typische Bezeichnung: local-ssl-connection.jks).
Wird versucht, aus dem Primärsystem heraus die SMTP-Verbindung zum KV-Connect Client über TLS zu öffnen, so
präsentiert der KV-Connect Client (in seiner Rolle als Mail-Server) dem aufrufenden System zunächst das dafür
vorgesehene Zertifikat (s.o.). Beim ersten Aufruf und ohne weitere Vorbereitung "kennt" das Primärsystem weder
dieses Zertifikat noch weiß es etwas über dessen Herkunft; insbesondere ist unklar, ob das System dem Zertifikat
vertrauen kann/soll. Die übliche Reaktion von Client-Software wie Mail-Systemen, Browsern usw. auf diese
Situation ist, den Nutzer zu fragen, wie mit dem Zertifikat umzugehen ist, speziell: ob dem Zertifikat vertraut
werden soll.
Eine solche Abfrage sollten auch die Primärsysteme, die den KV-Connect Client ansprechen, vornehmen!
Leider reichen manche frameworks/Plattformen die Tatsache, dass das präsentierte Zertifikat (noch) nicht als
vertrauenswürdig eingestuft werden kann, nicht an die Anwendungs-SW weiter, so dass ein angemessene Reaktion
der Anwendung - wie oben gefordert - nicht oder nicht ohne weiteres möglich ist. Ein solches Verhalten kann z.B.
unter .NET auftreten. In diesem Fall empfiehlt es sich, das Zertifikat aus dem oben genannten Keystore zu
exportieren und in den Windows-Zertifikatsspeicher zu importieren und es damit dem System als
"vertrauenswürdig" bekannt zu machen.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von brandelh »

ich denke bei den Ports passt etwas nicht zueinander:
mini990 hat geschrieben: Fr, 03. Aug 2018 10:32 Es wird ein "KV-Connect Server" gestartet. (localhost:9443)
Über diesen Server sind bestimmte Mailadressen erreichbar.
Beispiel: Abrechnung.Test@kv-safenet.de
mini990 hat geschrieben: Fr, 03. Aug 2018 11:05 Outlook: SMTP: localhost, Port: 465
Ich sehe Port: 9443 und Port: 465 - die sind nicht gleich ...

sendet Outlook überhaupt über den localen oder direkt über seinen eigenen oder sind dort mehrere - oder verstehe ich einfach nix davon :wink:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Mail senden (SSL) an localhost

Beitrag von brandelh »

Xbase 2.0 kann auf jeden Fall TLS Verschlüsselung, aber das mit dem unbekannten Zertifikat ist auf jeden Fall zu beachten.

Bei LoadFromUrl() von Phil Ide z.B. war es ursprünglich so, dass er so etwas grundsätzlich als Fehler abgeblockt hat.
Lokale selbst erstellte Zertifikate konnte man so nie zulassen, später hat er einen Parameter aufgenommen.
Möglich dass Outlook das selbst lädt oder danach gefragt hat, dem Hinweis mit der Aufnahme in Windows solltest du mal ausprobieren ;-)
Gruß
Hubert
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Aktueller Stand:
Mit SMTPClient komme ich nicht weiter....

Also nochmal mit BLAT und STunnel versucht.
Mails an normale Adressen funktionieren problemlos.
Es werden 2 unabhängige Tunnel aufgebaut.
Tunnel 1: Connect zum Server funktioniert.
Tunnel 2: Senden der eigentlichen Mail funktioniert nicht.
Stunnel Config:
[KBV]
client = yes
accept = 127.0.0.1:29
connect = localhost:465
verifyChain = yes
CAfile = ca-certs.pem
;checkHost = smtp.1und1.de
OCSPaia = yes

Fehlermeldung beim Mailversand:
2018.08.06 13:29:02 LOG5[1]: Service [KBV] accepted connection from 127.0.0.1:49998
2018.08.06 13:29:03 LOG3[1]: s_connect: connect ::1:465: Connection refused (WSAECONNREFUSED) (10061)
2018.08.06 13:29:03 LOG5[1]: s_connect: connected 127.0.0.1:465
2018.08.06 13:29:03 LOG5[1]: Service [KBV] connected remote server from 127.0.0.1:50000
2018.08.06 13:29:04 LOG4[1]: CERT: Pre-verification error: self signed certificate
2018.08.06 13:29:04 LOG4[1]: Rejected by CERT at depth=0: C=BY, ST=Bayern, L=Berg, OU=PRISMA, CN=Stefan Reichl
2018.08.06 13:29:04 LOG3[1]: SSL_connect: 14090086: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
2018.08.06 13:29:04 LOG5[1]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket

Wie kann ich STunnel dazu bewegen, ein bestimmtes Zertifikat zu nutzen?

Gruß Stefan
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Mail senden (SSL) an localhost

Beitrag von Werner_Bayern »

mini990 hat geschrieben: Mo, 06. Aug 2018 13:57 Wie kann ich STunnel dazu bewegen, ein bestimmtes Zertifikat zu nutzen?
Servus Stefan,

in der stunnel.conf kannst das angeben.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Mail senden (SSL) an localhost

Beitrag von mini990 »

Das Problem ist gelöst:

STunnel Config:
[KBV]
client = yes
accept = 127.0.0.1:29
connect = localhost:465
verifyChain = yes
CAfile = zert_51.pem

Nun muss ich nur noch BLAT dazu bringen meine EML-Datei zu senden...
Antworten