Puncte:1

Cum pot folosi E-Mailrelay pentru a implementa DKIM?

drapel tr

Încerc să adaug DKIM la un server Windows existent, care utilizează în prezent SMTP IIS pentru e-mailurile de expediere.

Se pare că acest lucru se poate face prin utilizarea E-Mailrelay. Din păcate, nu am putut găsi nicio referință despre cum să configurez DKIM în E-Mailrelay.

Există ceva ce am omis din documente sau poate un tutorial al unei terțe părți care descrie cum să fac asta?

djdomi avatar
drapel za
ai adaugat ip-urile la inregistrarile SPF?
drapel tr
Da, dar ce legătură are asta cu întrebarea mea?
Puncte:0
drapel tr

Am implementat o aplicație simplă de linie de comandă cu C# / NET 6 pentru a acționa ca un filtru în E-MailRelay:

folosind System.IO;
folosind System.Text;
folosind MimeKit;
folosind MimeKit.Cryptography;

spatiu de nume E_MailRelay.DKIM.Filter;

/// <rezumat>
/// Citește un mesaj de e-mail, adaugă o semnătură DKIM Hardcoded și și scrie 
mesajul actualizat înapoi pe disc
/// Rețineți că acest lucru necesită instalarea MailKit pentru a funcționa. 
/// </rezumat>


Programul clasei interne
{
private const string DKIMSelector = "ENTER_YOUR_DKIM_SELECTOR_HERE";
private const string _DKIMDomain = "INTRODUCEȚI_DOMENIUL_TĂU_NUMELE_AICI";
private const string DKIMPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n"
                                      + @„ENTER_YOUR_PRIVATE_KEY_HERE”
                                      + "\r\n-----END RSA PRIVATE KEY-----";

private static int Main(șir[] argumente)
{
    LoadSignAndRewriteMail(args);
    întoarcere 102;
}

private static void LoadSignAndRewriteMail(string[] args)
{
    var emailMessage = MimeMessage.Load(args[0]);
    dacă (!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;
    Flux MemoryStream = new(Encoding.UTF8.GetBytes(pk));
    {
        stream.Poziție = 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.ContentDescription, HeaderId.ResentDate, HeaderId.ResentFrom,
        HeaderId.ResentSender, HeaderId.ResentTo, HeaderId.ResentCc, HeaderId.ResentMessageId, HeaderId.InReplyTo,
        HeaderId.References
    };

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

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.