【发布时间】:2014-09-09 02:43:05
【问题描述】:
我尝试根据代码发送电子邮件:
http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient(v=vs.110).aspx
Sending email in .NET through Gmail
所以我做到了:
SmtpClient client = new SmtpClient("smtp.gmail.com",587);
MailAddress from = new MailAddress("xxx@gmail.com","Jane " + (char)0xD8 + " Clayton",System.Text.Encoding.UTF8);
MailAddress to = new MailAddress("yyy@gmail.com");
MailMessage message = new MailMessage(from, to);
message.Body = "This is a test e-mail message sent by an application. ";
string someArrows = new string(new char[] { '\u2190', '\u2191', '\u2192', '\u2193' });
message.Body += Environment.NewLine + someArrows;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.Subject = "test message 1" + someArrows;
message.SubjectEncoding = System.Text.Encoding.UTF8;
client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
string userState = "test message1";
client.SendAsync(message, userState);
Console.WriteLine("Sending message... press c to cancel mail. Press any other key to exit.");
string answer = Console.ReadLine();
if (answer.StartsWith("c") && mailSent == false)
{
client.SendAsyncCancel();
}
message.Dispose();
Console.WriteLine("Goodbye.");
return View();
但在“client.SendAsync(message, userState);”行出现问题 和错误说:
System.dll 中的“System.Net.Mail.SmtpException”类型的未处理异常,但未在用户代码中处理。
附加信息:发送邮件时出错。
我该如何解决它??
【问题讨论】:
-
Console.ReadLine()在 ASP.NET 项目中?它从哪个控制台读取? -
好吧...我将代码更改为link,但没有工作....并且错误仍然在这里“异常是:System.Net.Mail.SmtpException:发送邮件失败。---> System.Net.WebException: Unable to connect to the remote ---> System.Net.Sockets.SocketException server: 连接尝试时出错,因为连接方在一段时间后没有正确响应或发生错误连接已建立,因为连接的主机未能响应......"
-
您应该在您的问题中发布整个异常。它有很大的不同。例外情况很明显:您尝试与之交谈的系统没有应答。原因与打电话的原因相同:错误号码,正确号码但他们没有接听,正确号码但他们正忙。下一步是找出哪个是真的。
-
感谢您的回复和解释!!...m...所以我需要更改到另一个端口??像“25”??但发生同样的错误,整个错误:link where line 105 is "smtp.Send(message);"
-
您需要更改为正确端口,并且您需要确保您可以从您的机器访问该端口。就像@SLaks 所说,您的机器可能正在阻止传出连接,至少到 smtp.gmail.com。