文章内容

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

2、C# 用腾讯企业邮箱发送邮件 SMTP

3、如何使用域名在客户端设置IMAP、POP3/SMTP?


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Error: need EHLO and AUTH first

分享到:

发表评论

评论列表