ASP.NET MVC Форма обратной связи

Я создаю контактную форму для клиентов, чтобы ввести информацию в форму и отправить нам письмо. Кроме того, мой пакет хостинга находится под Go Daddy. Я использовал следующий код в качестве теста, и он работал.

MailMessage oMail = new System.Web.Mail.MailMessage();

      oMail.Subject = "Subject",
      oMail.Body 
      oMail.From = "myFromAddress@domain.com",
      oMail.To = "myToAddress@someotherdomain.com",

SmtpMail.SmtpServer = "relay-hosting.secureserver.net";
SmtpMail.Send(oMail);

Затем я изменил код, чтобы получить информацию, вводимую из формы для отправки по электронной почте, а не из-за ошибки.

public ActionResult ContactForm(ContactModel emailModel)
    {
        MailMessage oMail = new System.Web.Mail.MailMessage();

            oMail.From = "Website Contact Form";
            oMail.To = "myemail@hmydomain.com";
            oMail.Subject = emailModel.Subject;
            string body = "Name: " + emailModel.Name + "\n"
                        + "Email: " + emailModel.Email + "\n"
                        + "Website: " + emailModel.Website + "\n"
                        + "Phone: " + emailModel.Phone + "\n\n"
                        + emailModel.Message;

            oMail.Body = body;

    SmtpMail.SmtpServer = "relay-hosting.secureserver.net";
    SmtpMail.Send(oMail);
        return View();
    }

Это дает мне эту ошибку

COMException (0x8004020d): требуется хотя бы одно из полей From или Sender, и ни одно из них не найдено

2 ответа

Решение

Похоже, вы не предоставляете поле электронной почты от:

oMail.From = "someEmail@someDomain.com"; //instead of -> "Website Contact Form"

Указанное вами поле "От" не является действительным адресом электронной почты. От и до должны быть в формате электронной почты, даже если они не являются реальными адресами, которые могут отправлять или получать почту.

Другие вопросы по тегам