2017-01-27 5 views
9

Ich sende E-Mails an Benutzer mit Anhängen. Mails, die nicht signiert sind, erhalten eine PDF-Datei (ca. 64kb) und funktionieren einwandfrei.C# DKIMKeySigner Anhänge können nicht geöffnet werden

Wenn ich sie jedoch für andere Benutzer signiere, wird die PDF-Datei ungefähr 64 B und kann nicht geöffnet werden.

Ich mache nichts mit den Anhängen während der Unterzeichnung, aber .. so ist das sehr merkwürdig.

Mein Code für die Signierung:

email = SpecificMethods.DKIMSign(email); 

internal static MailMessage DKIMSign(MailMessage email) 
    { 
     var privateKey = PrivateKeySigner.Create(@"-----BEGIN RSA PRIVATE KEY----- 
     -----END RSA PRIVATE KEY-----"); 

     var domainKeySigner = new DomainKeySigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" }); 
     email.DomainKeySign(domainKeySigner); 

     var dkimSigner = new DkimSigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" }); 
     email.DkimSign(dkimSigner); 

     return email; 
    } 

Und es schließlich senden. Nichts Besonderes passiert dort.

Jeder Grund, warum mein Anhang "brechen" würde?

+0

Ich würde empfehlen, meine mit [MimeKit] (https://github.com/jstedfast/MimeKit) und [MailKit] (https://github.com/jstedfast/MailKit) Bibliotheken für Nachrichten mit DKIM Unterzeichnung und senden sie über SMTP. – jstedfast

Antwort

2

Ich denke, dass Sie die Bibliothek ändern, die zum Signieren der Nachrichten verwendet wird oder die Klasse, die zum Senden der eigentlichen E-Mail verwendet wird. Ich versuchte eine schnelle Suche nach einer Alternative zu System.Net.SmtpClient aber fand keine.

Sie nicht angeben, welche DLL Paket, das Sie verwendet, so eine Google-Suche teleportierte mich this project

Leider, wenn Sie in der Readme-Datei suchen ...


Bekannte Probleme

Da System.Net.Mail.SmtpClient Randbezeichner zufällig generiert und der Code den SmtpClient hackt, um den vollständigen E-Mail-Inhalt abzurufen, bevor der Code gesendet wird, kann nicht verwendet werden, wenn gesendet wird g mit SmtpClient und der MailMessage , wenn die MailMessage eine alternative Ansicht oder eine Anlage hat.


Verwandte Themen