我目前遇到的一个问题是我的代码无法针对Exchange服务器进行身份验证,并且可以使用gmail正常运行。
这是我的代码
client = new SmtpClient(smtp_server, smtp_port); //webmail.airbaltic.com
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = smpt_enableSSL;
client.Timeout = 60 * 5 * 1000;
client.UseDefaultCredentials = false;
if (string.IsNullOrEmpty(smtp_domain))
{
client.Credentials = new NetworkCredential(smtp_user, smtp_password);
}
else
client.Credentials = new NetworkCredential(smtp_user, smtp_password, smtp_domain);
try
{
using (MailMessage mail = new MailMessage(mail_from, message.recep))
{
mail.Subject = mail_title;
mail.Body = message.message;
if (message.attachedFile != null)
mail.Attachments.Add(message.attachedFile);
client.Send(mail);
if (message.attachedFile != null)
message.attachedFile.Dispose();
}
}
catch (Exception e)
{
Debug.LogError(e);
}
我从服务器返回的响应是" 530 5.7.1客户端未经过身份验证"。我已经检查了密码和用户名,以及域名和服务器地址,搜索了论坛,甚至从外部邮件客户端(它工作的地方)尝试了相同的配置,没有任何内容。
服务器本身不使用SSL并使用NTLM进行身份验证。
编辑: 进一步研究(即检查已发送和接收的数据包),我用于测试用户名和密码的客户端似乎首先进行身份验证,而SmtpClient.send()似乎由于某种原因跳过它