ASP.NET MVC电子邮件联系表

问题描述:

我正在创建联系表单,供客户在表单中输入信息并向我们提交电子邮件。另外,我的托管软件包在Go Daddy下。我用下面的代码作为测试,它工作。ASP.NET MVC电子邮件联系表

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

     oMail.Subject = "Subject", 
     oMail.Body 
     oMail.From = "[email protected]", 
     oMail.To = "[email protected]", 

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 = "[email protected]"; 
      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):至少从或发件人的领域之一是必需的,没有发现

+0

尝试在测试中使用的'From'和'To'。 – gdoron 2012-01-31 18:59:24

看起来你是不是供应的电子邮件 - from field:

oMail.From = "[email protected]"; //instead of -> "Website Contact Form" 
+0

这是正确的。除了我身体上需要输入地址。 oMail.From = [email protected] – 2012-01-31 19:16:46

+0

@LarsHovden修复..我只是假设你的模型有它,顺便说一下,我建议你将该电子邮件存储在数据库或web.config中,而不是直接硬编码它。 – 2012-01-31 19:36:35

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