System.Net.Mail на общем хостинге GoDaddy — не показывает ошибок, но не отправляет отправленное электронное письмо

Во-первых, я приношу свои извинения, так как мне кажется, что этот вопрос задавался много раз на Stack Overflow, однако я пытался просмотреть некоторые из этих решений, но они все равно не помогают. Я просто пытаюсь выяснить, выделяется ли что-то в моем коде из-за моей проблемы.

У меня есть веб-сайт mvc, который в настоящее время размещен на учетной записи общего хостинга GoDaddy. Я пытаюсь настроить простую контактную форму, которая отправляет электронное письмо владельцу сайта. Когда я отправляю форму, никаких сообщений об ошибках не сообщается, однако электронное письмо не отправляется. Я уже несколько раз говорил со службой поддержки GoDaddy, и они говорят, что с их стороны ничего не происходит. Кроме того, при тестировании с моего локального хоста (используя в моем web.config) электронная почта успешно сохраняется в каталоге.

Несколько деталей:

  1. Страница, на которой возникла проблема (для телефона используйте только цифры. Я все еще работаю над этим): https://solarsafely.com/Home/Contact

  2. Хостинг GoDaddy: общий доступ

  3. Электронная почта, которую я пытаюсь использовать для отправки: электронная почта Outlook 365 (приобретена у GoDaddy)

Вот мой контроллер mvc для отправки:

     public async Task<ActionResult> Contact(Email email)
    {
        if(ModelState.IsValid)
        {
            try
            {
                string body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>";
                MailMessage mail = new MailMessage();
                mail.To.Add(new MailAddress("[email protected]"));
                mail.From = new MailAddress(email.From);
                mail.Subject = "You have a new message from SolarSafely.com - Contact Us";
                mail.Body = string.Format(body, email.Name, email.From, email.Body);
                mail.IsBodyHtml = true;
                using (SmtpClient smtp = new SmtpClient())
                {
                    await smtp.SendMailAsync(mail);
                    return RedirectToAction("Sent");
                }
            }
            catch(Exception exc)
            {
                ViewBag.Error = exc.Message;
            }
            
        }
        return View(email);
    }

Web.config:

<system.net>
<mailSettings>
  <smtp from="[email protected]">
    <network host="relay-hosting.secureserver.net" port="25" />
  </smtp>
</mailSettings>
   </system.net>

Любая идея, почему мое письмо не отправляется? Спасибо


person goalie35    schedule 31.03.2021    source источник


Ответы (1)


Попробуйте временно настроить его, используя адрес GMAIL.
Я проверил здесь: https://www.godaddy.com/help/send-form-mail-using-an-smtp-relay-server.-953, и вам, возможно, придется явно установить настройки аутентификации и ssl в web.config.

person Bryan Valencia    schedule 31.03.2021