文章内容
2019/9/3 15:42:56,作 者: 黄兵
Error: need EHLO and AUTH first
今天通过System.Net.Mail的时候出现了如下错误:
Error: need EHLO and AUTH first
1、启用smtp.UseDefaultCredentials = true;
2、启用smtp.EnableSsl = true;
同时端口是587,并不是官方所说的465。
具体代码如下:
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.Extensions.Options;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Net;
namespace QuickstartIdentityServer.Services
{
public class EmailSender:IEmailSender
{
public EmailSender(IOptions<AuthMessageSenderOptions> optionsAccessor)
{
Options = optionsAccessor.Value;
}
public AuthMessageSenderOptions Options { get; } //set only via Secret Manager
public Task SendEmailAsync(string email, string subject, string message)
{
return Execute(Options.SmtpUser,Options.SmtpPassword, subject, message, email);
}
public Task Execute(string SMTP_User,string SMTP_Pass, string subject, string message, string email)
{
SmtpClient client = new SmtpClient();
client.Host = "smtp.exmail.qq.com";
client.Port = 587;
client.UseDefaultCredentials = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Credentials = new NetworkCredential(SMTP_User + "@pdflibr.com", SMTP_Pass);
MailMessage Message = new MailMessage();
Message.From = new MailAddress(SMTP_User + "@pdflibr.com");
Message.To.Add(email);
Message.Subject = subject;
Message.Body = message;
Message.BodyEncoding = Encoding.UTF8;
Message.Priority = MailPriority.High;
Message.IsBodyHtml = true;
return client.SendMailAsync(Message);
}
}
}
注意SMTP_User,是@前面的内容。
参考资料:
1、Error: need EHLO and AUTH first
黄兵个人博客原创。
评论列表