Basierend auf dieser question habe ich mich entschieden, E-Mails von ASP.NET.MVC senden, um Spam-Score von E-Mails zu verringern, aber ich habe irgendwo einen Fehler.E-Mail-Signatur in C#
Code:
public void SendEmail(MailMessage mailMessage)
{
string domain = "kup-nemovitost.cz";
var message = MimeMessage.CreateFromMailMessage(mailMessage);
HeaderId[] headers = new HeaderId[] { HeaderId.From, HeaderId.Subject, HeaderId.Date };
DkimCanonicalizationAlgorithm headerAlgorithm = DkimCanonicalizationAlgorithm.Relaxed;
DkimCanonicalizationAlgorithm bodyAlgorithm = DkimCanonicalizationAlgorithm.Relaxed;
string dkimPath = Path.Combine(ConfigHelper.GetDataPath(), "DKIM");
string privateKey = Path.Combine(dkimPath, "kup-nemovitost.cz.private.rsa");
DkimSigner signer = new DkimSigner(privateKey, domain, "mail")
{
SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1,
AgentOrUserIdentifier = "@" + domain,
QueryMethod = "dns/txt",
};
message.Prepare(EncodingConstraint.SevenBit);
message.Sign(signer, headers, headerAlgorithm, bodyAlgorithm);
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.Connect("localhost", 25, false);
client.Send(message);
client.Disconnect(true);
}
}
ich das Ergebnis überprüfen auf http://www.isnotspam.com wird die Ausgabe folgende:
DKIM check details:
----------------------------------------------------------
Result: invalid
ID(s) verified: [email protected]
Selector=mail
domain=kup-nemovitost.cz
DomainKeys DNS Record=mail._domainkey.kup-nemovitost.cz
Mein DNS-Eintrag ist:
@ IN TXT "v=dkim1; s=mail; p=migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqdnov2pxnjmghdpxw5wpypk1rf7 kxs+5ouvh6f0hraryncku6wbvq+xovbgxz1kuddcb/s9o8wquftxrlffniik3wbm qc+upm+ndloxcxwy0bb2iktbgnmndjiexm/z0npaviwzebr2k6vqdzbp+lmcuece bwasqgw2fki5ospb4qidaqab"
UPDATE:
Ich behebe einige Probleme in DNS-Eintrag und ich habe bessere Online-Checker gefunden dkimcore.org
Ich noch Validierungsfrage meines öffentlichen Schlüssels. Ich generierte 1024 RSA mit PuttyGen (ppk) und konvertiert es in RSA-Format. Die Originaldatei von PuTTYgen ist:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170606"
AAAAB3NzaC1yc2EAAAABJQAAAIEAiyEwx+Idlf/Qp2fTYrQMwV3MuF9W7yaKDMHk
hzoH+MqWKtNDngQoJcmbyrkMeF0VLYo246ma3gPZh9cDL7i8ygOYKagbyUjgtZFz
y+et0tY/+G/IZNaHiQp0QuG/J71uZrl4Jlgkq+0s5bZxpRR45aRpcG1HQMIm6Ku7
lgmOt88=
---- END SSH2 PUBLIC KEY ----
Also habe ich den Inhalt einfach kopieren (mit Ausnahme der kommentierten Zeilen) auf DNS-Eintrag und ich habe folgende Ausgabe von checker:
p= AAAAB3NzaC1yc2EAAAABJQAAAIEAiyEwx+Idlf/Qp2fTYrQMwV3MuF9W7yaKDMHkhzoH+MqWKtNDngQoJcmbyrkMeF0VLYo246ma3gPZh9cDL7i8ygOYKagbyUjgtZFzy+et0tY/+G/IZNaHiQp0QuG/J71uZrl4Jlgkq+0s5bZxpRR45aRpcG1HQMIm6Ku7lgmOt88=
This doesn't seem to be a valid RSA public key: RSA.xs:178: OpenSSL error: wrong tag at blib/lib/Crypt/OpenSSL/RSA.pm (autosplit into blib/lib/auto/Crypt/OpenSSL/RSA/new_public_key.al) line 91.
Ok, also hast du irgendwo einen Fehler. Was ist das gewünschte Verhalten im Vergleich zu dem, was tatsächlich passiert? – Nkosi
Das gewünschte Verhalten ist, dass http://www.isnotspam.com bestätigen soll, dass die E-Mail mit DKIM mit Ergebnis bestanden hat. – qub1n
Dienste wie SendGrid haben eine ziemlich großzügige, kostenlose Tier-Ebene, die den Großteil der Last trägt, Ihre E-Mail nicht in Spam-Boxen landen zu lassen. –