我有一些代码只能用于我的 SMTP主机域,而不能用于其他域。它似乎发送,但它实际上并没有发送任何东西,它也不会抛出任何异常。
SmtpClient mailClient = new SmtpClient();
mailClient.UseDefaultCredentials = false;
mailClient.Port = 587;
mailClient.EnableSsl = false;
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
mailClient.Host = "mail.smtpserver.com";
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("mail@smtpserver.com", "password");
mailClient.Credentials = cred;
MailMessage message = new MailMessage();
message.From = new MailAddress("mail@smtpserver.com");
message.To.Add("mail@remotedomain.com");
message.Subject = "Subject";
message.Body = "Body";
mailClient.Timeout = 200000;
mailClient.Send(message);
我认为问题不在于检查NetworkCredential ......
答案 0 :(得分:0)
我建议您尝试使用"其他"发送测试邮件。使用telnet的smtp服务器,以确保它的工作。
您的smtp端口不是默认端口,因此可能被防火墙阻止。
答案 1 :(得分:0)
通常情况下,如果您使用端口587,那么这是SSL安全SMTP - 因此您需要更改代码,以便在建立连接时使用它:
mailClient.EnableSsl = true;