我在StackOverflow上搜索了其他问题,但找不到我的问题的解决方案。
我想使用System.Net.Mail和C#发送邮件。邮件服务器由大学的研究所提供(使用SSL(SHA1),Unix机器)。我在不同的机器上使用了相同的代码。代码正在与Mono一起使用Debian和Ubuntu。在Windows 10和Windows Server 2012(当前的.NET)上,它无法正常工作。我收到错误:
554 5.7.1 : Client host rejected: Access denied
在Windows机器上使用Thunderbird也适用于连接。所以Mailserver和Credentials是正确的。使用以下代码:
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
MailMessage mail = new MailMessage(MailFrom, "*****@gmail.com");
SmtpClient client = new SmtpClient();
client.Port = MailPort;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = MailSMTPHost;
client.Credentials = new System.Net.NetworkCredential(MailUser, MailPass);
client.EnableSsl = true;
mail.Subject = "Testmail";
mail.Body = "Fooobar!";
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.SubjectEncoding = System.Text.Encoding.UTF8;
try
{
client.Send(mail);
}
catch (Exception e)
{
Console.WriteLine("Failed: "+e.Message);
}
你有什么想法,发生了什么事?
谢谢大家!