2017-01-27 8 views
9

添付ファイルを持つユーザーにメールを送信しています。 署名されていないメールは、.pdfファイル(約64kb)を取得し、正常に動作しています。C#DKIMKeySigner添付ファイルを開くことができません

ただし、他のユーザーに署名すると、PDFファイルは64 Bになり、開くことはできません。

私は署名している間、添付ファイルで何もしていませんが、これは非常に奇妙です。

署名のための私のコード:

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; 
    } 

、最終的にそれを送ります。何も特別なことは起こっていない。

私の添付ファイルが「破損」する理由は何ですか?

+0

私はDKIMでメッセージに署名するための私の[MimeKit](https://github.com/jstedfast/MimeKit)と[MailKit](https://github.com/jstedfast/MailKit)ライブラリを使用することをお勧めしますそれらをSMTP経由で送信します。 – jstedfast

答えて

2

実際のメールの送信に使用されたクラスまたはに署名するために使用するライブラリを変更する必要があると思います。 System.Net.SmtpClientの代わりにを手早くで検索しましたが、何も見つかりませんでした。

あなたは、Googleの検索が

this project

残念ながら、あなたはReadmeファイルを見れば...


既知の問題を私にテレポートので、あなたが使用しているDLLのパッケージを指定しませんでしたSystem.Net.Mail.SmtpClientは境界識別子をランダムに生成するので、このコードはSmtpClientをハックしてコードを送信する前に完全な電子メールコンテンツを取得しますは使用できません sendin MailMessageが、代替の表示が、添付ファイルがの場合、SmtpClientとMailMessage があります。


関連する問題