C# SMTP客户端中的远程主机强制关闭了现有连接
我将放弃调试SMTP服务器以发送电子邮件。。。我的代码如下C# SMTP客户端中的远程主机强制关闭了现有连接,c#,.net,exception-handling,smtp,C#,.net,Exception Handling,Smtp,我将放弃调试SMTP服务器以发送电子邮件。。。我的代码如下 SmtpClient mailClient = new SmtpClient("plus.smtp.mail.yahoo.com", 465); mailClient.EnableSsl = true; MailMessage message = new MailMessage(); message.To.Add("aditya15417@hotmail.com"); message.Subject =
SmtpClient mailClient = new SmtpClient("plus.smtp.mail.yahoo.com", 465);
mailClient.EnableSsl = true;
MailMessage message = new MailMessage();
message.To.Add("aditya15417@hotmail.com");
message.Subject = "permias-tucson-contact-us";
mailClient.Credentials = new NetworkCredential("myemail@yahoo.com", "mypassword");
MailAddress fromAddress = new MailAddress(Email.Text, Name.Text);
message.From = fromAddress;
mailClient.Send(message);
您需要传递登录凭据:
mailClient.Credentials = new NetworkCredential(Email.Text, password)
下面是一个完整的工作示例:
public class Program
{
static void Main(string[] args)
{
using (var client = new SmtpClient("smtp.mail.yahoo.com", 587))
{
client.Credentials = new NetworkCredential("youraccount@yahoo.com", "secret");
var mail = new MailMessage();
mail.From = new MailAddress("youraccount@yahoo.com");
mail.To.Add("destaccount@gmail.com");
mail.Subject = "Test mail";
mail.Body = "test body";
client.Send(mail);
}
}
}
确保替换帐户和密码。如果不使用用户名和密码登录SMTP服务器,则无法发送电子邮件。您可能应该创建一个单独的电子邮件帐户来发送。我这样做了…更新了上面的代码,但仍然会出现相同的错误。我遇到了相同的问题,但会间歇性出现。例如,当循环3000个收件人并发送3000封电子邮件时,它会在发出的100封电子邮件上随机抛出此错误,但其余的都会正常。它也可能发生在单独发送一封电子邮件时。电子邮件对我来说是非常不可靠的,我也不知道我还能做些什么。你那边运气好吗?所以我应该知道发件人的密码是什么?是的,你需要用户名和密码。就雅虎而言,我认为用户名应该是电子邮件地址。如果SMTP不需要身份验证,那么任何人都可以使用它发送垃圾邮件。不,我不认为凭据是问题所在。无论是否有凭据,此问题都可能间歇性发生。@Aaron:这是服务器问题。