Autor Beitrag
curtiss
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 59



BeitragVerfasst: Di 07.04.09 11:13 
Guten tag.

Ich möchte aus meinem Prog heraus E-Mails versenden. Dafür findet man ja haufenweise Tutorials. Problematisch wird es dann allerdings wenn ich die Mails verschlüsseln möchte. Das gebräuchlichste ist hier sicherlich PGP. Dazu kann ich nichts finden. Vll. hat hier ja schon jemand soetwas implementiert, bzw. weis wo ich im bezug auf delphi bzw. die Indy kompos etwas zum einbinden von PGP nachlesen kann?

MFG
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 07.04.09 12:56 
Für Email-Verschlüsslung gibt es mindestens 3 Möglichkeiten:
1. GnuPG mit PGP/MIME (Kann Outlook nicht, bzw. interpretiert das falsch, kann dafür Attachments mit verschlüsseln)
2. GnuPG inline im Text (Recht gebräuchlich, erlaubt aber keine Verschlüsslung von Anhängen)
3. S/MIME mit X.509-Zertifikat (Können fast alle Programme, X.509-Zert benötigt*, erlaubt verschlüsselte Anhänge)

Je nach dem, mit wem ich Kommuniziere, nutz ich meist S/MIME mit GnuPG inline, da ein Empfänger somit beide meine Identitäten überprüfen kann (S/MIME verifiziert hier die Signatur von GnuPG, S/MIME wird über die CA geprüft).

Zu deiner Frage, wie man das nun mit den Indys macht: Für Inline GnuPG nimmst Du deinen Text, rufst das GnuPG Binary auf und pipest deinen Text rein. Als Antwort erhälst Du die unterschriebene Inline-Nachricht, die Du als Message Body sendest. Keine Anhänge wie gesagt.

Für S/MIME könnte es sein, dass die Indys da was haben, aber k.A. Ansonsten siehe RFC 2633

Für PGP/MIME kann man im Prinzip das gleiche machen wie für Inline, muss jedoch Detached signieren statt inline UND muss an die inneren Header kommen. Hierzu verweise ich mal auf das entsprechende RFC 3156.

*z.B. bei CAcert** erhältlich
**Zur Verifikation wird ein zusätzliches Root-Zertifikat bei Sender und Empfänger benötigt, da die Signaturen sonst nicht als Vertrauenswürdig angezeigt werden

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
curtiss Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 59



BeitragVerfasst: Di 07.04.09 16:33 
hab das mit der gpg.exe mal gemacht. allerdings find ich meine Lösung rechtunschön:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
PGPmessage := TStringList.Create;
 AssignFile(f,'mail.txt');
 Rewrite(f);
 for i:= 0 to MemMessage.Lines.Count do
  begin
   write(f, MemMessage.lines[i])
  end;
 Closefile(f);
 Shellexecute(handle,'open','cmd',pchar(' /c start gpg.exe --clearsign c:\mail.txt julian'), 'c:\programme\GNU\GnuPG\', SW_HIDE);
 AssignFile(f, 'mail.txt.asc');
 Reset(f);
 while not Eof(f) do
  begin
   Readln(f,BuffStr);
   PGPmessage.Add(BuffStr);
  end;
 CloseFile(f);
 result := PGPmessage;


es is relativ unschön, das immer die Kommandozeile aufpoppt. Und was meinst du mit Pipen? Kann ich damit den Datei Quatsch weglassen ?

Aber erstmal danke! ^^
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 07.04.09 16:47 
Schau Dir mal TDosCommand (oder ähnliche Komponenten) an, die direkt die Ausgabe eines fremden Prozesses lesen\Schreiben können.

Dann kannst Du direkt GnuPG aufrufen und gibst direkt über die Standardeingabe deine Nachricht rein. Müsste aber schauen, wie das Enigmail beim Thunderbird genau realisiert, bzw. von einem Server-Script von mir das mal raussuchen (auch wenn ich da ein Binding für GnuPG in PHP nutze).

@Pipen: Direkt über Standard-Ein-\Ausgabe die Daten weiterreichen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.