簡體   English   中英

部署后,SMTP“發送郵件失敗”異常與本地主機配合使用

[英]SMTP “Failure sending mail” exception after deploy, works well with localhost

在此鏈接中使用教程如何在ASP.NET MVC(ASP.NET 5)中實現“聯系我們”頁面 我設法讓我的應用程序將電子郵件發送到我的Gmail帳戶。 但是,它在發布后失敗,並顯示“發送郵件失敗”錯誤。 我已經做了可能的修復,您可以在下面看到,但沒有幫助。 謝謝。

這是我的HomeController代碼:

public ActionResult Contact(Contact c)
    {
        if (ModelState.IsValid)
        {
            try
            {
                MailMessage msg = new MailMessage();
                StringBuilder sb = new StringBuilder();
                msg.From = new MailAddress("example1@gmail.com");
                msg.To.Add("example1@gmail.com");
                msg.Subject = c.Subject;
                //msg.IsBodyHtml = false;
                sb.Append("<b>First name: </b>" + c.FirstName + "<br/><br/>");
                sb.Append("<b>Last name: </b>" + c.LastName + "<br/><br/>");
                sb.Append("<b>Email: </b>" + c.Email + "<br/><br/>");
                sb.Append("<b>Phone: </b>" + c.PhoneNumber + "<br/><br/>");
                sb.Append("<b>Message: </b>" + c.Message + "<br/><br/>");
                msg.Body = sb.ToString();
                msg.IsBodyHtml = true;
                // We use gmail as our smtp client
                SmtpClient smtpClient = new SmtpClient(); 
                smtpClient.Send(msg);
                msg.Dispose();
                ModelState.Clear();
                ViewBag.ContactMessage = "Your Message has been sent. Thank you for Contacting us. ";
            }
            catch (Exception ex)
            {
                ModelState.Clear();
                ViewBag.ContactMessage = $" Sorry we are facing the following Problem: {ex.Message}";
            }
        }
        return View();
    }

和我的Web.config文件:

<system.net>
    <mailSettings>
        <smtp deliveryMethode="Network">
            <network host="smtp.gmail.com" port"587" userName="***" password="***" enableSsl="true"/>
        </smtp>
    </mailSettings>
</system.net>

如果我正確理解了您的問題,那么這就是您的情況。

  1. 當您在本地使用相同的憑據時,它將起作用。
  2. 發布后相同的憑證不起作用。 這是Google問題嗎? 是。 原因:您的發布服務器似乎位於其他位置。 因此,當您將網站放在那兒gmail時,假設有人嘗試從另一個位置訪問gmail。

    解決方案:您的帳戶將收到一封電子郵件,說明您實際上是在嘗試訪問該帳戶嗎? 允許那里的權限。 它可能會起作用。 由於我遇到了同樣的問題,之后就解決了。

不是一個精確的解決方案,但是。我更改了域電子郵件,將SMTP端口更改為80,並刪除了enableSsl,現在它可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM