无法使用SMTP向外部域发送电子邮件

Mur*_*i B 7 asp.net email smtpclient

我无法使用以下代码向"user.one@asdf.com"等外部域地址发送电子邮件.

SmtpClient smtpClient = new SmtpClient(smtpMailServer);
smtpClient.UseDefaultCredentials = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = true;

//Sending mail.
smtpClient.Send(mailMessage);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外 -

Mailbox unavailable. The server response was: 5.7.1 Unable to relay for xxx@example.com

如果我将DeliveryMethod更改为 -

smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
Run Code Online (Sandbox Code Playgroud)

我可以在本地机器上发送电子邮件.但它在生产现场失败,但有例外 -

Cannot get IIS pickup directory

你能建议我做什么吗?

And*_*ard 6

我遇到了这个问题并通过身份验证修复了它,请参见下文:

SmtpClient client = new SmtpClient(EmailServer, 25);
var SmtpUser = new System.Net.NetworkCredential("domain\\username", "password");
client.Credentials = SmtpUser;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
Run Code Online (Sandbox Code Playgroud)

我不得不使用双斜杠,因为一个斜杠是转义字符,所以使用两个斜杠才能工作。


Hen*_*ryk 1

您通常需要使用用户名/密码向外部邮件服务器进行身份验证。当您使用外部服务器时,它不会知道您传递的凭据。这可能是你的问题。