I tried the new version Aspose.Email 19.7 , here is another error that it do not signed for domain key 001.png (50.5 KB)
received eml file received001.zip (5.5 KB)
my code :
ps. the file C:\EMAIL_DEMO.html is here EMAIL_DEMO.zip (3.3 KB)
the private key file is here Email.Key.zip (820 Bytes)
private void button6_Click(object sender, EventArgs e)
{
Aspose.Email.License license = new Aspose.Email.License();
//放在內嵌資源
license.SetLicense(“Aspose.Email.lic”);
try
{
MailMessage MailMessage = new MailMessage();
#region Sender (作為主要退信address)
MailMessage.Sender = "support@dajinsoft.com";
MailMessage.Sender.DisplayName = "達璟資訊 Dajinsoft";
#endregion
#region From
MailMessage.From = "crm@dajinsoft.com";
MailMessage.From.DisplayName = "達璟資訊";
#endregion
#region To
MailMessage.To.Add("carlossy.l@gmail.com");
MailMessage.To.Add("carlossy.l@hotmail.com");
#endregion
#region Content
MailMessage.Subject = "諮詢回覆通知ABC";
StringBuilder sb = new StringBuilder();
StreamReader sr = new StreamReader(@"C:\EMAIL_DEMO.html", Encoding.UTF8);
sb.Append(sr.ReadToEnd());
MailMessage.HtmlBody = sb.ToString();
MailMessage.IsBodyHtml = true;
#endregion
MailMessage.BodyEncoding = Encoding.UTF8;
MailMessage.SubjectEncoding = Encoding.UTF8;
MailMessage.PreferredTextEncoding = Encoding.UTF8;
MailMessage = SignedDKIM(MailMessage);
//MailMessage.Save(FilePath, SaveOptions.DefaultEml);
SmtpClient client = new SmtpClient();
client.Host = "exmail.dajinsoft.com";
client.Username = "username";
client.Password = "password";
client.Port = 25;
//client.UseAuthentication = false;
//client.SupportedEncryption = Aspose.Email.Clients.Base.EncryptionProtocols.Ssl2;
client.SecurityOptions = SecurityOptions.None;
client.Send(MailMessage);
}
catch (Exception)
{
throw;
}
}
private MailMessage SignedDKIM(MailMessage mailMessage)
{
//私鑰
string privateKeyFile = @"C:\Develop\Dajin\Product\CRM\CommonFiles\Settings\Email.Key.pem";
//加密演算法, 預設為 rsa
RSACryptoServiceProvider rsa = PemReader.GetPrivateKey(privateKeyFile);
//加簽內容
string selector = "s1233225";
string domain = "dajinsoft.com";
DKIMSignatureInfo signInfo = new DKIMSignatureInfo(selector, domain);
signInfo.HashAlgorithm = DKIMHashAlgorithm.RSASha256;
signInfo.BodyCanonicalization = CanonicalizationType.Relaxed;
signInfo.HeaderCanonicalization = CanonicalizationType.Relaxed;
signInfo.Headers.Add("From");
//signInfo.Headers.Add("Subject");
MailMessage signedMsg = mailMessage.DKIMSign(rsa, signInfo);
return signedMsg;
}