繁体   English   中英

SMTP电子邮件发送中的问题,Azure中托管的ASP .Net mvc应用程序

[英]Issue in SMTP email sending, ASP .Net mvc application hosted in Azure

我是天青。 我的asp .net MVC应用程序托管在Azure中。 此应用程序具有电子邮件发送功能。 当应用程序移动到天蓝色时,电子邮件功能不起作用。 我的错误日志显示错误如下:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. a65sm9218660oih.6 - gsmtp
   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
   at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
   at System.Net.Mail.SmtpClient.Send(MailMessage message)

用于发送电子邮件的代码块

SmtpClient client = new SmtpClient(GetStringValue(EMAIL_CLIENT), GetIntValue(EMAIL_PORT))
            {
                Credentials = new NetworkCredential(GetStringValue(EMAIL_USER_NAME),                            GetStringValue(EMAIL_PASSWORD)),
                EnableSsl = sslOn
            };

client.Host = SettingsManager.GetStringValue("EmailClient");//smtp.gmail.com
client.Port = SettingsManager.GetIntValue("EmailPort");//587
client.DeliveryMethod = SmtpDeliveryMethod.Network;

谁能帮我解决这个问题。 谢谢。

甚至我也遇到gmail的相同问题。 Gmail阻止您的电子邮件处于天蓝色状态,因为您的应用正在尝试从时区不同或与您创建帐户时不同的位置登录。 检查您的gmail收件箱,它将收到一封有关阻止登录尝试的电子邮件。

解决方案是从azure服务器登录gmail或检查收件箱中被阻止的电子邮件,然后将该设备添加到经过验证的设备中。 即选择此链接中提到的“我将此活动视为我的活动”。

这是我们一次在Azure上托管的应用程序的完整工作代码。 通过gmail发送的电子邮件很好

MailMessage mail = new MailMessage();
mail.From = new MailAddress("Support@domain.com");
mail.Subject = "Subject";
mail.IsBodyHtml = true;
mail.To.Add(new MailAddress(email));
mail.Body = "Email body";

SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
smtp.Credentials = new System.Net.NetworkCredential("gmail-email-address", "gmail-password");
smtp.EnableSsl = true;
smtp.Send(mail);

首先检查您的代码,端口,凭据,超时等方面存在问题。

var smtp = new SmtpClient
{               
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, "yourApplicationSpecificPassword"),
    Timeout = 10000
};
using (var message = new MailMessage(fromAddress, toAddress)
{                
    IsBodyHtml = true,               
    Subject = subject,
    Body = body

})
{
    smtp.Send(message);
}

然后在gmail设置中,使用两步验证-https: //myaccount.google.com/u/3/signinoptions/two-step-verification

并生成应用密码-https: //myaccount.google.com/u/3/apppasswords 在此处输入图片说明

在代码“ yourApplicationSpecificPassword”中使用生成的密码

祝好运!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM