Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi EMail mit DKIM versenden (Indy) (https://www.delphipraxis.net/201200-email-mit-dkim-versenden-indy.html)

DelTurbo 1. Jul 2019 13:43

EMail mit DKIM versenden (Indy)
 
Hallo,
ich versuche eine Mail mit DKIM zu versenden. Erstaml eins vorweg. Ich weiß es geht nicht von meiner DailInIP. Ich habe einen Server der dafür konfiguriert ist. Auch die DNS-Sachen sind eingetragen. Mit z.b. MailCow klappt es auch. Es wird nichts abgelehnt. Ich teste das auf dieser Seite. (Vielleicht gibt es ja eine bessere Seite, wo man sieht wer wann was sendet)

Nun habe ich versucht das DKIM in den Header einzufügen. So habe ich das vorliegen.

Code:
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=dkey; d=*****;'+
    'h=To:From:Subject:Message-ID:List-Unsubscribe:MIME-Version:Content-Type:'+
    'Content-Transfer-Encoding:Date; i=******;'+
    'bh=*******;'+
    'b=**************************************************************************'+
    '****************************************************************************'+
    '********************''
Da ich hier im Forum schon gelesen habe, das man keine URL die einem gehören posten soll, habe ich das mit * versehen.

Nun zu meinem Problem. Füge ich das mit (TIdMessage) Headers.AddStrings hinzu, sagt die Seite es wäre kein DKIM vorhanden. Nehme ich (TIdMessage) AddHeader Dann erkennt die Seite das ein DKIM vorhanden ist, aber es ist alles doppelt im Header. Ich versuche nun schon seit einiger Zeit das Problem selber zu lösen. Aber in Netzt oder hier im Forum findet man nichts darüber. :(

Ich habe eben versucht mit Wireshark mitzulesen. Aber nach STARTTLS ist ende. Ich hoffe sehr das mir jemand helfen kann. Ich müsste das Problem entweder mit Indy oder Synapse lösen, da es sehr wahrscheinlich auf einen Unix Server kommt. Per CodeTyphon mache ich so was immer. Das klappt bisher immer einwandfrei.

Vielen Dank im Voraus

Schokohase 1. Jul 2019 13:51

AW: EMail mit DKIM versenden (Indy)
 
Ich kenne das eigentlich so, dass der SMTP-Server (über den die Mail versandt wird) diesen DKIM-Header einfügt.

DelTurbo 1. Jul 2019 13:55

AW: EMail mit DKIM versenden (Indy)
 
Da wird es keinen Mailserver drauf geben. Ich muss es selber machen. Das wird ein bissl Speziell.

hoika 1. Jul 2019 13:56

AW: EMail mit DKIM versenden (Indy)
 
Hallo,
ich würde das in die ExtraHeader reinpacken.

Schokohase 1. Jul 2019 14:01

AW: EMail mit DKIM versenden (Indy)
 
Zitat:

Zitat von DelTurbo (Beitrag 1435735)
Da wird es keinen Mailserver drauf geben. Ich muss es selber machen. Das wird ein bissl Speziell.

Nun ja, es gibt da eine Domain und die wird von einem Provider verwaltet mit ein bischen Web-Space und einem Mail-Server. Dieser Mail-Server (der bei dem Provider) der klatscht den DKIM-Header dran.

Somit liegt auch dieser Mail-Server nicht bei mir und trotzdem gibt es DKIM

DelTurbo 1. Jul 2019 14:05

AW: EMail mit DKIM versenden (Indy)
 
@hoika
Antwort der Seite: Ihre Nachricht ist nicht durch DKIM signiert

Obwohl ich ihn in dem Quelltext sehe.

hoika 1. Jul 2019 14:09

AW: EMail mit DKIM versenden (Indy)
 
Hallo, ah so,
Zitat:

So habe ich das vorliegen.
Zitat:

v=1; a=rsa-sha1; c=relaxed/relaxed; s=dkey
Das sind Daten des Zertifikates.
Die gehören nicht so in den Header.

Zum Signieren würde ich OpenSSH (-smime) benutzen.

Schokohase 1. Jul 2019 14:24

AW: EMail mit DKIM versenden (Indy)
 
Also, wenn ich eine mail sende dann bekommt der Empfänger folgenden DKIM-Header in der Mail zu sehen
Code:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
   d=****.de; s=xxxxxxxx;
   h=to:message-id:subject:date:mime-version:content-transfer-encoding:
    content-type:from:from;
   bh=<base64-data>;
   b=<base64-data>

hoika 1. Jul 2019 14:55

AW: EMail mit DKIM versenden (Indy)
 
Hallo,
ja, das macht dann dieser Zwischenserver.
Aber:
Der schreibt nicht einfach in die Header,
das Signieren ist doch komplizierter.
Es wird ein Hashwert des Mail-Inhaltes erzeugt,
der dann mit dem Zertifikat "verwurschtelt" wird.

siehe auch hier
https://certificate.nikhef.nl/info/smime-manual.html

DelTurbo 1. Jul 2019 15:00

AW: EMail mit DKIM versenden (Indy)
 
Hi,
ich habe es gerade nochmal mit AddHeader versucht. Der DKIM wird erkannt. Irgendwie verstehe ich das nicht. Der ist zwar nicht gültig weil ich von meiner IP Sende, aber immerhin ist er da.

Nachtrag: Der Zertifikat ist ja da, und wenn man vom Server senden würde auch gültig.
Nachtrag 1: Wenn ich mit AddHeader den DKIM einfüge, ist der Betreff weg.

Schokohase 1. Jul 2019 15:03

AW: EMail mit DKIM versenden (Indy)
 
Zitat:

Zitat von hoika (Beitrag 1435744)
Es wird ein Hashwert des Mail-Inhaltes erzeugt,
der dann mit dem Zertifikat "verwurschtelt" wird.

Das sollte hoffentlich logisch sein, denn ein fixer Wert würde keine Sicherheit bieten.

Welche Header-Zeilen für die DKIM-Signatur verwendet wurden, steht im Signatur-Header (hinter dem h=) auch mit drin.

hoika 1. Jul 2019 15:04

AW: EMail mit DKIM versenden (Indy)
 
Hallo,
Zitat:

Nachtrag 1: Wenn ich mit AddHeader den DKIM einfüge, ist der Betreff weg.
Das kommt mir bei Indy bekannt vor ;)
<Ironie>AddHeader springt intern zu AddHeaderAndEmptySubject</Ironie>

DelTurbo 1. Jul 2019 15:17

AW: EMail mit DKIM versenden (Indy)
 
Aber dann sagt die Seit wenigtens folgendes: Ihre DKIM Signatur ist nicht gültig

Das heißt doch, er hat erkannt das ein DKIM vorhanden ist. Ich habe nun versucht nach dem AddHeader nochmal das Subject zu setzen. Kommt trotzdem nicht. :(

DelTurbo 1. Jul 2019 16:16

AW: EMail mit DKIM versenden (Indy)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also, um die sache abzuschliessen. AddStrings scheint zu reichen. Die Seite erkennt den DKIM sauber. Ich habe fast das dumme gefühl das bei https://www.mail-tester.com Ein fehler auf der Seite ist. Oben steht das der DKIM falsch ist, unten steht er wäre garnicht vorhanden. Was denn nun?!?!?
Lasse ich den DKIM weg, dann steht oben nichts. Logischerweise, ist ja nix da.

Naja.

Trotzdem danke an euch...........

Michael II 1. Jul 2019 17:28

AW: EMail mit DKIM versenden (Indy)
 
Du schreibst, dass https://www.mail-tester.com eventuell nicht korrekt ermittelt, ob ein DKIM Signatur vorhanden ist. Ich teste jeweils auch via diese Webseite.

Ich hab's rasch soeben mit einem meiner eMail Server gecheckt. https://www.mail-tester.com erkennt DKIM und SPF korrekt. Resultat punkto DKIM DKIM_VALID Wunderbar! Ihre Signatur ist gültig. DKIM_VALID_AU Großartig! Ihre Signatur ist gültig und sie und sie kommt von der Domain
DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain



Zu deinem Problem:

WebServer: Hast du überprüft, ob der DNS TXT Record "default._domainkey.<meinedomain>." vorhanden und von aussen abrufbar ist?

Wenn du mit deiner App nur eMails senden willst (und nicht gleich einen eMail Server schreiben willst), dann kannst die Aufgabe (DKIM Signatur hinzufügen) auch deinem eMail Server überlassen. D.h. du sendest die eMail - zum Beispiel mit Indy oder ICSOverbyte - an deinen eMail Server und dieser fügt dann die DKIM Signatur hinzu.

DelTurbo 2. Jul 2019 16:11

AW: EMail mit DKIM versenden (Indy)
 
Huhu,
wie immer rückmeldung.
Ich nehmen nun Synapse. Damit geht es einwandfrei. Man muss den DKIM in TMimeMess.Header.CustomHeaders.Text eintragen. Mit Indy habe ich es nicht hinbekommen.

Für die Suche: Synapse DKIM

Achso, CleverComponents kann das auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz