Asp.net核心邮件工具包
我有Asp.net核心web应用程序,用于使用Mailkit发送电子邮件: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
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?