[英]ASP.NET MVC SMTPClient not working on hosted environment
當我在本地主機上本地運行我的應用程序時,該電子郵件將毫無例外地成功發送出去。 但是,當我發布應用程序並嘗試重新創建電子郵件時,它既不發送電子郵件也不發送帶有相應錯誤的View。
try
{
using (var mail = new MailMessage())
{
const string email = "*******@gmail.com";
const string password = "*********";
var loginInfo = new NetworkCredential(email, password);
mail.From = new MailAddress("*******@gmail.com");
mail.To.Add(new MailAddress("email@email.com"));
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
try
{
using (var smtpClient = new SmtpClient("smtp.gmail.com", 587))
{
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = loginInfo;
smtpClient.Send(mail);
}
}
finally
{
mail.Dispose();
}
}
}
catch (SmtpFailedRecipientsException ex)
{
foreach (SmtpFailedRecipientException t in ex.InnerExceptions)
{
var status = t.StatusCode;
if (status == SmtpStatusCode.MailboxBusy ||
status == SmtpStatusCode.MailboxUnavailable)
{
return View(status);
}
else
{
return View(status);
}
}
}
catch (SmtpException Se)
{
// handle exception here
return View(Se);
}
catch (Exception ex)
{
return View(ex);
}
錯誤消息未在此處顯示,但是,可能是客戶端身份驗證錯誤。 請試試:
要注意的另一件事是,您最終不必在MailMessage()對象上嘗試..。 由於它已經被包裝在using語句中,當它到達using塊的末尾時,它將為您處理它,並且任何錯誤都將被捕獲在您的外部try catch塊中。
刪除所有這些異常處理,然后重試。 找出錯誤所在,然后從那里繼續。
我懷疑您遇到困難的原因是嘗試/捕獲的建立方式中的b / c。 內在的嘗試/追趕使我感到有點奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.