我正在尝试使用Outlook.com smtp支持发送自动电子邮件。但是我得到以下例外:
System.Net.Mail.SmtpException: Failure sending mail.
---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host" Exception while sending email.
我的代码:
public bool SendEmail(MailMessage msg)
{
try
{
SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com")
{
UseDefaultCredentials = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("userAddress", "userPassword"),
Port = 587,
EnableSsl = true,
};
smtpClient.Send(msg);
msg.Dispose();
smtpClient.Dispose();
return true;
}
catch (Exception exp)
{
Console.WriteLine(exp.ToString());
return false;
}
}
答案 0 :(得分:6)
我知道这是一个非常古老的问题,我甚至可能无法提供帮助,但是当我尝试使用C#发送电子邮件时,我遇到了类似的问题。
结果我用这个允许我发送电子邮件:
string _sender = "";
string _password = "";
SmtpClient client = new SmtpClient("smtp-mail.outlook.com");
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential(_sender, _password);
client.EnableSsl = true;
client.Credentials = credentials;
MailMessage message = new MailMessage(_sender, "recipient of email");
message.Subject = "";
message.Body = "";
client.Send(message);
这对你来说可能没什么用了,但是如果有人绊倒这个问题,至少有一个答案,其中有工作代码可以作为修复!