2012-01-31 156 views
0

我正在創建聯繫表單,供客戶在表單中輸入信息並向我們提交電子郵件。另外,我的託管軟件包在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

回答

1

看起來你是不是供應的電子郵件 - 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

0

您指定的「From」字段不是有效的電子郵件地址。需要使用電子郵件格式,即使它們不是可以發送或接收郵件的實時地址。