SMTP中继 - 从控制台应用程序发送电子邮件

时间:2012-09-24 11:30:05

标签: c# .net email smtp

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

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

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

这实际上可以工作,我不需要指定用户名/ pwd吗?

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

在您的情况下,如果您在webconfig中输入用户名和密码,那么您需要像上面那样调用它。 但如果您使用默认邮件凭据,它将自动选择.. 如果你使用不同的邮件客户端发送者,那么你必须通过凭证..

答案 2 :(得分:0)

我有同样的情况。我得到了相同的错误代码。我注意到,我曾经使用过system.web.mail。但是我的应用程序是一个控制台应用程序。我更改了库,使用了system.net.mail。现在就可以了。