【问题标题】:c# ASP.Net Mail-Error "Unable to connect to the remote server"c# ASP.Net Mail-Error "无法连接到远程服务器"
【发布时间】:2023-03-31 04:13:01
【问题描述】:
private void MailGonder(string to, string from, string password, string subject, string body, HttpPostedFile ektekidosya)
{
    using (MailMessage mm = new MailMessage(from, to))
    {
        mm.Subject = subject;

        mm.Body = body;

        mm.IsBodyHtml = false;

        SmtpClient smtp = new SmtpClient();

        smtp.Host = "smtp.gmail.com";

        smtp.EnableSsl = true;

        NetworkCredential NetworkCred = new NetworkCredential(from, password);

        smtp.UseDefaultCredentials = false;

        smtp.Credentials = NetworkCred;

        smtp.Port = 587;

        smtp.Send(mm);
    }
}
    protected void BtnGonder_Click(object sender, EventArgs e)
    {
        string to = txtKime.Text;

        string from = txtEmail.Text;

        string password = txtPassword.Text;

        string subject = txtKonu.Text;

        string body = txtMesaj.Text;

        HttpPostedFile ektekidosya = fuAttach.PostedFile;

        try
        {
            MailGonder(to, from, password, subject, body, ektekidosya);
            Response.Write("Mail başarıyla gönderildi");
        }
        catch (Exception ex)
        {
            Response.Write("Mail gönderiminde hata oluştu. Err: " + ex.ToString());
        }
    }

我尝试了不同的端口,但没有任何帮助,我不断收到错误消息。Localserver 工作正常,但 Server 没有工作。我该如何解决这个错误? 我什么都试过了。我的主机是 1und1。

Here Picture from my Website Error

【问题讨论】:

标签: c# asp.net email server


【解决方案1】:

尝试将“smtp.UseDefaultCredentials = true;”表达式BEFORE放在NetworkCredential声明中:

smtp.UseDefaultCredentials = false;
NetworkCredential NetworkCred = new NetworkCredential(from, password);

顺序很重要,因为设置 SmtpClient.UseDefaultCredentials = false 会将 SmtpClient.Credentials 重置为 null。

更新:

1) 先用 telnet 检查:

Telnet smtp.gmail.com 587 如果您看到一个空的命令提示符窗口,则说明连接成功

2) 确保发件人地址与您传递的凭据关联的 gmail 帐户相同

3) 如果您的密码很弱,gmail 可能无法发送您的邮件!

4) 如果这不起作用,请使用另一个邮件服务器

【讨论】:

  • 无论如何你都需要这样做。您是否尝试过 VDWWD 建议的所有链接?详细的错误消息是什么 - 删除 try/catch 来得到这个?你用 telnet 测试过吗?
  • "连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应 74.125.206.108:587".. 我得到这个错误。
  • 您是否检查过是否是 DNS 问题?您没有提供有关您自己的服务器设置的详细信息:forums.asp.net/t/… 另外,为什么您甚至没有将文件作为参数传递给电子邮件?
  • 如何检查我的 DNS 问题?
  • 询问您的管理员是否在内部网络上。试试谷歌!我已经用一些选项更新了答案。
【解决方案2】:

使用 gmail 确保允许不太安全的应用访问

Check here Let less secure apps use your account

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多