C# 邮箱不可用。服务器响应为:不允许中继

C# 邮箱不可用。服务器响应为:不允许中继,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我通过外部SMTP服务器发送电子邮件。发送电子邮件时使用以下代码进行处理: try { System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.From = new MailAddress(froma); mail.To.Add(toc); mail.Subject = subject; mail.IsBodyHtm

我通过外部SMTP服务器发送电子邮件。发送电子邮件时使用以下代码进行处理:

try
    {
        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
        mail.From = new MailAddress(froma);
        mail.To.Add(toc);
        mail.Subject = subject;
        mail.IsBodyHtml = true;
        mail.Body = body;
        SmtpClient smtp = new SmtpClient(ClientServer);
        DataSet ds = new DataSet();
        int retCode = Email.getSmtp(ref ds, DatabaseName);
        string User="";
        string Password="";

        if (ds.Tables["Value"].Rows.Count > 0)
        {
            User = ds.Tables["Value"].Rows[0]["UserName"].ToString();
            Password = ds.Tables["Value"].Rows[0]["PasswordName"].ToString();
        }
        else
        {
            MessageBox.Show("Invalid SMTP settings!");
            return;
        }

        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new System.Net.NetworkCredential(User, Password);
        smtp.EnableSsl = false;
        smtp.Send(mail);
    }
    catch (System.Web.HttpException exHttp)
    {
        System.Console.WriteLine("Exception occurred:" + exHttp.Message);
    }
在我的服务器上测试此代码,在同一网络上使用我自己的SMTP服务器,这将返回我的所有电子邮件。但是,使用外部SMTP服务器会导致以下错误:

Mailbox unavailable. The server response was: relay not permitted.

我已经读过了,似乎SMTP管理员必须允许我的服务器进行中继。但是,使用提供的身份验证凭据,我似乎无法连接,并且仍然收到中继错误。

是的,听起来您使用的外部服务器不允许中继。即使您具有正确的身份验证凭据,也无法发送电子邮件,因为中继功能仍处于禁用状态。你是这个外部服务器的管理员吗?如果是,则可以启用它。这说明了如何设置SMTP和中继。如果您不是此外部服务器的管理员,则必须与管理员联系,以便他们能够为您启用SMTP和中继


听起来您网络上的服务器安装了SMTP,并且中继设置正确,因为您可以发送邮件。我必须在这里的三台服务器(开发箱、暂存箱和生产箱)上安装SMTP并配置中继以发送电子邮件。我希望这些信息有帮助

我也犯了同样的错误,并指出:

//smtp.UseDefaultCredentials = true;

电子邮件发送成功。

您好,很遗憾,我不是外部服务器的管理员。基本上,我将不得不联系管理员,以允许中继?是的。这就是我要做的。如果中继已启用,则会出现另一个问题,但我认为服务器设置不正确。