【发布时间】:2018-08-02 10:38:28
【问题描述】:
我在使用 Yandex 发送电子邮件时遇到问题。
“SmtpException:命令序列错误。服务器响应为:5.5.4 错误:首先发送 AUTH 命令。”
我已经尝试了来自C# yandex mail send error 5.5.4 Error: send AUTH command first的所有解决方案
我尝试过的解决方案:
- EnableSsl 为真
- 更改 smtpHost(已尝试 smtp.yandex.com、smtp.yandex.ru、smtp.yandex.com.tr)
- 更改 smtpPort(已尝试 587、25)(由于 SSL 已弃用,465 不起作用)
- 检查的密码是否正确
- 确保“UseDefaultCredentials = false”在设置凭据之前
- 尝试添加“SMTP.DeliveryMethod = SmtpDeliveryMethod.Network;”
这几乎是上述问题中接受的所有内容,但没有一种解决方案对我有用。
电子邮件发件人类别
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential($"{Configuration["EmailSettings:UserName"]}", $"{Configuration["EmailSettings:Password"]}");
client.Port = Convert.ToInt32(Configuration["EmailSettings:SmtpPort"]);
client.Host = Configuration["EmailSettings:SmtpHost"];
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress($"{Configuration["EmailSettings:UserName"]}");
mailMessage.To.Add("SomebodysEmail");
mailMessage.Body = "body";
mailMessage.Subject = "subject";
client.Send(mailMessage);
appsettings.json
"EmailSettings": {
"SmtpHost": "smtp.yandex.com.tr",
"SmtpPort": "25",
"UserName": "email",
"Password": "password"
},
如果有人好奇,我已经检查了凭据、端口和主机是否从 appsettings.json 正确传递。
感谢您的帮助!
【问题讨论】: