【问题标题】:ASP.NET MVC Email Contact FormASP.NET MVC 电子邮件联系表
【发布时间】:2012-07-30 21:49:21
【问题描述】:

我正在创建一个联系表格,供客户在表格中输入信息并向我们提交电子邮件。此外,我的托管包在 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 字段中至少有一个是必需的,但都没有找到

【问题讨论】:

  • 试试你在测试中使用的FromTo

标签: asp.net-mvc asp.net-mvc-2 asp.net-mail


【解决方案1】:

您似乎没有提供 email-from 字段:

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

【讨论】:

  • 没错。除了我物理上需要输入地址。 oMail.From =某人@domail.com
  • @LarsHovden 已修复。我只是假设您的模型有它,顺便说一下,我建议您将该电子邮件存储在数据库或 web.config 中,而不是直接对其进行硬编码。
【解决方案2】:

您指定的“发件人”字段不是有效的电子邮件地址。往返需要采用电子邮件格式,即使它们不是可以发送或接收邮件的实时地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2020-05-20
    相关资源
    最近更新 更多