使用Mono中的System.Net.Mail发送邮件,而不是在.NET中

时间:2016-09-21 20:03:13

标签: c# .net mono smtp

我在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);
}

你有什么想法,发生了什么事?

谢谢大家!

0 个答案:

没有答案