Asp.net核心邮件工具包

Asp.net核心邮件工具包,asp.net,email,azure,Asp.net,Email,Azure,我有Asp.net核心web应用程序,用于使用Mailkit发送电子邮件: emailMessage.From.Add(new MailboxAddress("John", "john@outlook.com")); emailMessage.To.Add(new MailboxAddress("Doe", email)); emailMessage.Subject = subject; emailM

我有Asp.net核心web应用程序,用于使用Mailkit发送电子邮件:

            emailMessage.From.Add(new MailboxAddress("John", "john@outlook.com"));
            emailMessage.To.Add(new MailboxAddress("Doe", email));
            emailMessage.Subject = subject;
            emailMessage.Body = new TextPart("plain") { Text = message };

            using (var client = new SmtpClient())
            {
                client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                client.Connect("smtp-mail.outlook.com", 587, false);
                client.AuthenticationMechanisms.Remove("XOAUTH2");
                client.Authenticate("john@outlook.com", "password");
                client.Send(emailMessage);
                client.Disconnect(true);
            }
在VS上本地运行应用程序时,它可以正常发送。但当我在发送电子邮件时将其上载到Azure应用程序服务时,它失败了,并显示以下消息:

SmtpProtocolException: The SMTP server has unexpectedly disconnected.

MailKit.Net.Smtp.SmtpStream.ReadAhead(CancellationToken cancellationToken)

MailKit.Net.Smtp.SmtpStream.ReadResponse(CancellationToken cancellationToken)
MailKit.Net.Smtp.SmtpClient.SendCommand(string command, CancellationToken cancellationToken)
MailKit.Net.Smtp.SmtpClient.Authenticate(Encoding encoding, ICredentials credentials, CancellationToken cancellationToken)
MailKit.MailService.Authenticate(string userName, string password, CancellationToken cancellationToken)

有人知道如何修复吗?

Microsoft Azure不允许在端口25上进行出站连接,也会阻止所有出站SMTP,但连接到SendGrid时除外,SendGrid是第三方SMTP提供商,是Microsoft Azure唯一的“受祝福”出站电子邮件提供商

(我认为这很奇怪,因为你可能会认为微软会想在Azure上炫耀他们的Exchange服务,并与AWS的电子邮件服务竞争)

SendGrid是免费的(幸运的是,否则这将是敲诈),每月发送多达20000封电子邮件,此后它们仍然相当便宜

您可以直接从Azure Portal中创建SendGrid帐户,然后单击“管理”按钮打开您的SendGrid帐户详细信息并获取其SMTP详细信息,包括用户名和密码


SendGrid提供了两个API:第一个API只是一个原始的“哑”SMTP服务,但默认情况下,它们会将您的电子邮件延迟10分钟(以减少垃圾邮件),直到您的帐户被视为“受信任”。他们的第二个API是您可以使用的HTTP web服务-这对于重负载情况更好,因为HTTP连接比SMTP连接便宜。

Microsoft Azure不允许在端口25上进行出站连接,并且还阻止所有出站SMTP,但连接到SendGrid时除外,SendGrid是唯一的第三方SMTP提供商Microsoft Azure的“受祝福”出站电子邮件提供商

(我认为这很奇怪,因为你可能会认为微软会想在Azure上炫耀他们的Exchange服务,并与AWS的电子邮件服务竞争)

SendGrid是免费的(幸运的是,否则这将是敲诈),每月发送多达20000封电子邮件,此后它们仍然相当便宜

您可以直接从Azure Portal中创建SendGrid帐户,然后单击“管理”按钮打开您的SendGrid帐户详细信息并获取其SMTP详细信息,包括用户名和密码


SendGrid提供了两个API:第一个API只是一个原始的“哑”SMTP服务,但默认情况下,它们会将您的电子邮件延迟10分钟(以减少垃圾邮件),直到您的帐户被视为“可信”“。他们的第二个API是您可以使用的HTTP web服务-这对于重载情况更好,因为HTTP连接比SMTP连接便宜。

您好,谢谢您的解释。那么这是否意味着我们不能在Azure上使用Mailkit for ASP.NET Core?嗨,戴,谢谢你的解释。那么这是否意味着我们不能在Azure上为ASP.NET核心使用Mailkit?