C#DKIMKeySigner无法打开附件

时间:2017-01-27 12:06:50

标签: c# mailer dkim

我向带附件的用户发送邮件。 没有签名的邮件,获得.pdf文件(大约64kb)并且工作正常。

但是,当我为其他用户签名时,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;
    }

最终发送它。没有什么特别的事情发生在那里。

为什么我的依恋会破坏'

1 个答案:

答案 0 :(得分:2)

我认为你应该更改用于签署消息的库用于发送实际电子邮件的类。我尝试了快速搜索System.Net.SmtpClient的替代,但没有找到。

您没有指定您使用的DLL包,因此Google搜索将我传送到this project

不幸的是,如果你看一下自述文件......

已知问题

由于System.Net.Mail.SmtpClient随机生成边界标识符,因为此代码攻击SmtpClient以在发送代码之前检索完整的电子邮件内容使用SmtpClient和MailMessage <发送时无法使用 strong>当MailMessage具有备用视图或附件时。