2017-01-27 29 views
9

Tôi đang gửi thư cho người dùng có tệp đính kèm. Thư không được ký, nhận tệp .pdf (khoảng 64kb) và đang hoạt động hoàn toàn tốt.C# DKIMKeySigner Không thể mở các tệp đính kèm

Tuy nhiên, khi tôi ký cho người dùng khác, tệp PDF sẽ trở thành khoảng 64 B và không thể mở được.

Tôi không làm bất cứ điều gì với các tệp đính kèm khi ký, tuy nhiên .. vì vậy điều này rất kỳ quặc.

Mã của tôi cho ký:

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

Và cuối cùng gửi nó. Không có gì đặc biệt xảy ra ở đó.

Bất kỳ lý do gì khiến tệp đính kèm của tôi 'vỡ'?

+0

tôi sẽ khuyên bạn sử dụng [MimeKit] (https://github.com/jstedfast/MimeKit) và [MailKit] (https://github.com/jstedfast/MailKit) thư viện của tôi để ký thông điệp với DKIM và gửi chúng qua SMTP. – jstedfast

Trả lời

2

Tôi nghĩ rằng bạn sẽ thay đổi thư viện được sử dụng để ký các tin nhắn hoặc lớp được sử dụng để gửi email thực. Tôi đã thử tìm kiếm số nhanh chóng thay thế cho System.Net.SmtpClient nhưng không tìm thấy.

Bạn không nói rõ đó DLL gói bạn sử dụng, do đó, một tìm kiếm Google teleport tôi để this project

Thật không may, nếu bạn nhìn vào Readme ...


Vấn đề đã biết

Vì System.Net.Mail.SmtpClient tạo ra các định danh ranh giới một cách ngẫu nhiên và khi mã này hack SmtpClient để truy xuất toàn bộ nội dung email trước khi gửi mã không thể được sử dụng khi gửi g với SmtpClient và MailMessage khi MailMessage có chế độ xem thay thế hoặc phần đính kèm.


Các vấn đề liên quan