繁体   English   中英

System.Net.Mail.SmtpException:发送邮件失败。 无法从传输连接中读取数据

[英]System.Net.Mail.SmtpException: Failure sending mail. Unable to read data from the transport connection

这是相关的代码(C#)

                    MailMessage m;
                    SmtpClient client;   

                    client.Host = "smtp.mail.yahoo.com";
                    client.Port = 465;  
                    client.EnableSsl = true;
                    client.Credentials = new NetworkCredential("mymail@yahoo.com", "mypassword");

                    m = new MailMessage();
                    m.From = new MailAddress("mymail@yahoo.com");
                    m.To.Add(new MailAddress("anothermail@gmail.com"));
                    m.Subject = "My subject";
                    m.Body = "This is my body. ";

                    client.Send(m);

这是完整的错误跟踪

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
   at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.DelegatedStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at System.Net.BufferedReadStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
   at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
   at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
   at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
   at System.Net.Mail.SmtpClient.GetConnection()
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   --- End of inner exception stack trace ---
   at System.Net.Mail.SmtpClient.Send(MailMessage message)
   at EmailSender.EmailSenderForm.send() in c:\Users\Ankur\Documents\Visual Studio 2012\Projects\EmailSender\EmailSender\EmailSenderForm.cs:line 91

我在这里做错了什么?

据我所知,雅虎不允许第三方邮件客户端操作其帐户。 这就是为什么您需要使用Thunderbird进行webmail扩展的原因。 雅虎为其此类服务提供Yahoo Mail Plus。 您可以使用Gmail中的另一个邮件帐户尝试您的应用程序吗? 在那里应该可以正常工作。

我为一个用于发送电子邮件的Outlook帐户配置了此代码。 我已经工作两年了,没有任何修改。 它应该开箱即用(只需更改帐户名):

MailMessage mm = new MailMessage(@"example@hotmail.com",
                     dest, textBox1.Text, richTextBox1.Text);
SmtpClient client = new SmtpClient("smtp.live.com", 587);
client.Credentials = new NetworkCredential(@"examplehotmail.com", "password");
client.EnableSsl = true;
messageSent = false;
client.SendAsync(mm, null);
client.SendCompleted += SentMessageTrigger;

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM