Can';t使用C#,asp.net网站从网络发送smtp电子邮件

Can';t使用C#,asp.net网站从网络发送smtp电子邮件,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我在这里有我的代码,它在我家工作正常,我的用户是管理员,我通过有线网络连接到互联网。 但,问题是,当我在工作场所尝试这段代码时,它不起作用。显示错误: “无法连接到远程服务器” 来自同一网络中的不同计算机: “试图对无法访问的网络执行套接字操作209.xxx.xx.52:25” 我和我们的网络管理员联系过,他向我保证所有的邮件端口都是开放的[25110,还有gmail的其他端口] 然后,我以管理权限登录,有一点改进,没有显示任何错误,但从未收到实际的电子邮件 请注意,代码是在开发环境Visual

我在这里有我的代码,它在我家工作正常,我的用户是管理员,我通过有线网络连接到互联网。 但,问题是,当我在工作场所尝试这段代码时,它不起作用。显示错误: “无法连接到远程服务器” 来自同一网络中的不同计算机: “试图对无法访问的网络执行套接字操作209.xxx.xx.52:25”

我和我们的网络管理员联系过,他向我保证所有的邮件端口都是开放的[25110,还有gmail的其他端口]

然后,我以管理权限登录,有一点改进,没有显示任何错误,但从未收到实际的电子邮件

请注意,代码是在开发环境VisualStudio2005和2008中测试的

任何建议都将不胜感激。 提前谢谢

 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);
    }