首页 > 解决方案 > SMTP 服务器未从 C# 代码获取凭据

问题描述

我正在尝试设置自动电子邮件发件人。

我的 smtp 服务器需要身份验证。我没有使用 ssl,但我仍然从服务器收到以下响应:

服务器响应为: 5.7.1 您未获得授权,需要身份验证。

如果我在服务器上检查它得到一个空的用户名。

这是我的代码:

public void email_send(string mailadress,string docname)
{
  string host = "myhost";
  string username = "user";
  string password = "password";
  int port = 625;
  var nc = new NetworkCredential(username, password);
  var auth = nc.GetCredential(host,port,"Basic");
  using (var mail = new MailMessage())
  using (var SmtpServer = new SmtpClient())
  {
    SmtpServer.Host = host;
    SmtpServer.Port = port;
    SmtpServer.Credentials = auth;

    mail.From = new MailAddress("fromadress");
    mail.To.Add(mailadress);
    mail.Subject = "Subject";
    mail.Body = "Body";

    Attachment attachment;
    attachment = new Attachment("D:/" + docname + ".pdf");
    mail.Attachments.Add(attachment);
    mail.IsBodyHtml = true;

    SmtpServer.DeliveryFormat = SmtpDeliveryFormat.International;
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
    SmtpServer.Send(mail);
  }

}

标签: c#

解决方案


推荐阅读