【发布时间】:2019-10-23 08:22:27
【问题描述】:
我有一个带有帐户控制器的 ASP.Net 核心项目,用于处理用户配置文件的登录和帐户功能。在这个控制器中,如果用户通过 SMTP 忘记密码,我可以处理电子邮件。
[HttpPost, Route("resetPasswordLink"), AllowAnonymous]
public async Task<IActionResult> sendResetPasswordLink([Required] string email)
{
var dbUser = await UserManager.FindByNameAsync(email);
if (dbUser != null)
{
var someURL = 'My URL Here'
var token = await UserManager.GeneratePasswordResetTokenAsync(dbUser);
var fromAddress = ConfigurationManager.AppSettings["SMTPFromAddress"];
var mailServer = ConfigurationManager.AppSettings["SMTPServer"];
var mail = new MailMessage();
mail.From = new MailAddress(fromAddress);
mail.To.Add(email);
mail.Subject = "Password Reset";
mail.IsBodyHtml = true;
mail.Body += "<p>You have requested to change your password</p>";
mail.Body += "<p></p>";
mail.Body += "<p>You can reset your password by clicking <a href="+someURL+"/passwordReset/"+token+">here</a></p>";
var smtp = new SmtpClient();
smtp.Host = mailServer;
try
{
smtp.Send(mail);
return Ok("Email Sent");
} catch(Exception ex)
{
return BadRequest("Email generated but failed to send " + ex);
}
} else
{
return BadRequest("Failed to send link");
}
}
我的 app.config 包含我的 SMPTP 配置。当它在本地运行时,代码工作得非常好,并且电子邮件被发送到系统上的现有电子邮件。但是,当它发布到 Azure Devops 时,我收到此错误:
System.Net.Mail.SmtpException:发送邮件失败。 ---> System.Net.Sockets.SocketException: 没有这样的主机是已知的
我认为这与在外部机器上托管 .NET 代码的 Devops 有关。有谁知道如何解决这个问题?
【问题讨论】:
-
您检查过SMTPServer的已部署配置值吗?
-
@MarkusMeyer,部署时看起来值没有变化
-
好吧,我认为这是网络问题。外部网络与内部网络。防火墙规则,...
-
@MarkusMeyer 我怀疑...谢谢
-
@MarkusMeyer 如果您想留下关于它是网络问题的答案,我可以将其标记为已接受。我们决定现在改用 office 365 smtp
标签: c# asp.net azure-devops smtp devops