Can';t使用C#,asp.net网站从网络发送smtp电子邮件
我在这里有我的代码,它在我家工作正常,我的用户是管理员,我通过有线网络连接到互联网。 但,问题是,当我在工作场所尝试这段代码时,它不起作用。显示错误: “无法连接到远程服务器” 来自同一网络中的不同计算机: “试图对无法访问的网络执行套接字操作209.xxx.xx.52:25” 我和我们的网络管理员联系过,他向我保证所有的邮件端口都是开放的[25110,还有gmail的其他端口] 然后,我以管理权限登录,有一点改进,没有显示任何错误,但从未收到实际的电子邮件 请注意,代码是在开发环境VisualStudio2005和2008中测试的 任何建议都将不胜感激。 提前谢谢Can';t使用C#,asp.net网站从网络发送smtp电子邮件,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我在这里有我的代码,它在我家工作正常,我的用户是管理员,我通过有线网络连接到互联网。 但,问题是,当我在工作场所尝试这段代码时,它不起作用。显示错误: “无法连接到远程服务器” 来自同一网络中的不同计算机: “试图对无法访问的网络执行套接字操作209.xxx.xx.52:25” 我和我们的网络管理员联系过,他向我保证所有的邮件端口都是开放的[25110,还有gmail的其他端口] 然后,我以管理权限登录,有一点改进,没有显示任何错误,但从未收到实际的电子邮件 请注意,代码是在开发环境Visual
try
{
MailMessage mail_message = new MailMessage("xxxxx@y7mail.com", txtToEmail.Text, txtSubject.Text, txtBody.Text);
SmtpClient mail_client = new SmtpClient("SMTP.y7mail.com");
NetworkCredential Authentic = new NetworkCredential("xxxxx@y7mail.com", "xxxxx");
mail_client.UseDefaultCredentials = true;
mail_client.Credentials = Authentic;
mail_message.IsBodyHtml = true;
mail_message.Priority = MailPriority.High;
try
{
mail_client.Send(mail_message);
lblStatus.Text = "Mail Sent Successfully";
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message;
}
}
catch (Exception ex)
{
lblStatus.Text = "Mail Sending Failed\r\n" + ex.Message;
}
尝试将UseDefaultCredentials设置为false。也尝试为y7mail打开SSL
mail_client.EnableSSL = true;
Source-以下是一些示例代码,适用于我并与gmail服务器对话
private void SendEmail(string from, string to, string subject, string body)
{
MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to));
mail.Subject = subject;
mail.Body = body;
SmtpClient smtpMail = new SmtpClient("smtp.gmail.com");
smtpMail.Port = 587;
smtpMail.EnableSsl = true;
smtpMail.Credentials = new NetworkCredential("xxx@gmail.com", "xxx");
// and then send the mail
smtpMail.Send(mail);
}
这是系统异常问题的最佳答案。完全验证后,您需要在网络凭据中提供用户名和密码。还可以尝试将此解决方案提供给其他站点。谢谢。这对我也很管用。不仅是gmail,还有y7mail!这个端口587有什么特别之处吗?使它工作的代码的主要部分是:MailMessage\u message=newmailmessage(“xxxx@y7mail.com,txtToEmail.Text,txtSubject.Text,txtMailBody.Text);SmtpClient mail_client=新的SmtpClient(“SMTP.y7mail.com”,587);NetworkCredential Authentic=新的NetworkCredential(“xxx@y7mail.com“,”xxx“);mail_client.UseDefaultCredentials=true;mail_client.Credentials=可信;很高兴它成功了。端口587b是使用ESMTP(RFC2476)提交电子邮件的标准端口。
private void SendEmail(string from, string to, string subject, string body)
{
MailMessage mail = new MailMessage(new MailAddress(from), new MailAddress(to));
mail.Subject = subject;
mail.Body = body;
SmtpClient smtpMail = new SmtpClient("smtp.gmail.com");
smtpMail.Port = 587;
smtpMail.EnableSsl = true;
smtpMail.Credentials = new NetworkCredential("xxx@gmail.com", "xxx");
// and then send the mail
smtpMail.Send(mail);
}