5

是否可以通过 .net 应用程序从使用 smtp-relay 的服务器发送电子邮件。

我正在使用 app.config 来获取服务器 IP 前的实际值,以及电子邮件应该使用的 fromadress。

根据 IT 技术人员的说法,不需要授权的用户名和密码,因为它使用 smtp-relay。将要发送电子邮件的计算机位于有效计算机的 smtp-servers 列表中。

这真的可以吗,我不需要指定用户名/密码吗?

try
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient(_smtpserver);
    mail.From = new MailAddress(_fromAdress);
    mail.To.Add(_toAdress);
    mail.Subject = _subject;
    mail.Body = _body;
    mail.Priority = MailPriority.High;
    SmtpServer.Port = Convert.ToInt32(_port);
    SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword);
    SmtpServer.EnableSsl = true;
    SmtpServer.Send(mail);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
4

3 回答 3

3

在您的代码段中,您正在指定凭据

SmtpServer.Credentials = new System.Net.NetworkCredential(_authUsername, _authPassword);

您可以删除该行,如果按照您所说的配置了 SMTP 中继,它仍然可以工作。

于 2012-09-24T11:36:38.440 回答
0

在你的情况下,如果你在 webconfig 中设置你的用户名和密码,那么你需要像上面那样调用它。但是如果您使用默认邮件凭据,那么它将自动选择..如果您使用不同的邮件客户端作为发件人,那么您必须传递凭据..

于 2012-09-24T11:45:58.250 回答
0

我有同样的情况。我得到了相同的错误代码。我注意到,我使用过 system.web.mail。但我的应用程序是一个控制台应用程序。我改变了图书馆,我使用了 system.net.mail。它现在有效。

于 2020-04-06T18:16:55.947 回答