Điểm:1

Làm cách nào tôi có thể sử dụng E-Mailrelay để triển khai DKIM?

lá cờ tr

Tôi đang cố gắng thêm DKIM vào máy chủ windows hiện có đang sử dụng IIS SMTP cho thư gửi đi.

Có vẻ như điều này có thể được thực hiện bằng cách sử dụng chuyển tiếp thư điện tử. Thật không may, tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về cách định cấu hình chính xác DKIM trong E-Mailrelay.

Có điều gì tôi đã bỏ lỡ trong tài liệu hoặc có lẽ một số hướng dẫn của bên thứ ba mô tả cách thực hiện việc này không?

djdomi avatar
lá cờ za
bạn đã thêm ips vào bản ghi SPF chưa?
lá cờ tr
Vâng, nhưng làm thế nào là điều này liên quan đến câu hỏi của tôi?
Điểm:0
lá cờ tr

Tôi đã triển khai một ứng dụng dòng lệnh đơn giản với C#/NET 6 để hoạt động như một bộ lọc trong E-MailRelay:

sử dụng System.IO;
sử dụng System.Text;
sử dụng MimeKit;
sử dụng MimeKit.Cryptography;

không gian tên E_MailRelay.DKIM.Filter;

/// <tóm tắt>
/// Đọc một tin nhắn e-mail, thêm chữ ký DKIM được mã hóa cứng và viết 
tin nhắn cập nhật trở lại đĩa
/// Lưu ý rằng điều này yêu cầu cài đặt MailKit để hoạt động. 
/// </tóm tắt>


chương trình lớp nội bộ
{
private const string DKIMSelector = "ENTER_YOUR_DKIM_SELECTOR_HERE";
chuỗi const riêng tư _DKIMDomain = "ENTER_YOUR_DOMAIN_NAME_HERE";
private const string DKIMprivateKey = "----- BEGIN RSA PRIVATE KEY -----\r\n"
                                      + @"ENTER_YOUR_PRIVATE_KEY_HERE"
                                      + "\r\n------KẾT THÚC KHÓA RSA RSA-----";

tĩnh riêng int Chính (chuỗi [] args)
{
    LoadSignAndRewriteMail(args);
    trả về 102;
}

private tĩnh void LoadSignAndRewriteMail(string[] args)
{
    var emailMessage = MimeMessage.Load(args[0]);
    nếu (!emailMessage.Headers.Contains(HeaderId.DkimSignature)
        && !emailMessage.Headers.Contains(HeaderId.DomainKeySignature))
    {
        SignMail(emailMessage);
    }

    emailMessage.WriteTo(args[0]);
}


private static void SignMail(MimeMessage emailMessage)
{
    var pk = DKIMPrivateKey;
    Luồng MemoryStream = new(Encoding.UTF8.GetBytes(pk));
    {
        luồng. Vị trí = 0;
    }



    var dkimSigner = new DkimSigner(stream, _DKIMDomain, DKIMSelector);


    HeaderId[] dkimSignHeaders =
    {
        HeaderId.To, HeaderId.Cc, HeaderId.Subject, HeaderId.From, HeaderId.Date, HeaderId.MessageId, HeaderId.Body,
        HeaderId.Date, HeaderId.MimeVersion, HeaderId.Sender, HeaderId.ReplyTo, HeaderId.ContentTransferEncoding,
        HeaderId.ContentId, HeaderId.ContentDes mô tả, HeaderId.ResentDate, HeaderId.ResentFrom,
        HeaderId.ResentSender, HeaderId.ResentTo, HeaderId.ResentCc, HeaderId.ResentMessageId, HeaderId.InReplyTo,
        HeaderId.References
    };

    dkimSigner.Sign(FormatOptions.Default, emailMessage, dkimSignHeaders);
}
}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.