2014-02-23 224 views
0

我嘗試在mvc 4中創建一個聯繫表單,這是工作,但發件人(電子郵件和名稱)始終與我在smtp的憑據中使用的相同,我想顯示電子郵件和用戶名從我的聯繫表格發送它,有什麼幫助?這是我的代碼:如何更改發件人的電子郵件和姓名?

型號:

[Required(ErrorMessage="Requerido")] 
public string nombre { get; set; } 

[Required(ErrorMessage = "Requerido")] 
[DataType(DataType.EmailAddress)] 
public string email { get; set; } 

[Required(ErrorMessage = "Requerido")] 
public string telefono { get; set; } 

[Required(ErrorMessage = "Requerido")] 
public string comentario { get; set; } 

控制器:

[HttpPost] 
    public ActionResult Index(contactModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      insertContact(model.nombre, model.email, model.telefono, model.comentario); 
      TempData["notice"] = "your form was submitted."; 
      return RedirectToAction("Index", "Home"); 
     } 

     return View(); 
    } 

private void insertContact(string nombre, string email, string telefono, string comentario) 
    {  
     MailMessage mail = new MailMessage(); 
     mail.To.Add("[email protected]"); 
     mail.From = new MailAddress(email, nombre); 
     mail.Sender = new MailAddress(email, nombre); 
     mail.Subject = "Solicito informacion"; 
     mail.Body = telefono + comentario; 
     mail.IsBodyHtml = true; 

     SmtpClient smtp = new SmtpClient(); 
     smtp.Host = "smtp.gmail.com"; 
     smtp.Port = 25; 
     smtp.UseDefaultCredentials = false; 
     smtp.Credentials = new NetworkCredential("[email protected]","my.pass"); 
     smtp.EnableSsl = true; 
     smtp.Send(mail); 
    } 

回答

1

我想要顯示的電子郵件和誰從我接觸的形式發送給它的用戶的姓名,任何 有幫助嗎?

是的。不要那樣做。曾聽說過垃圾郵件?在其他域名帳戶中發送電子郵件的人?

與SPF打交道的一種方式 - 對於任何不想被濫用的人運行的域名來說,SPF都是一種標準認證方式。

SPF告訴服務器允許發送電子郵件的域。

所以,現在情況是這樣的:

  • 我填寫您的聯繫方式。
  • 您的網絡服務器將電子郵件發送到您的電子郵件服務器。它使用我的電子郵件作爲發件人。
  • 您的電子郵件服務器看到我的域名,檢查SPF記錄並將其丟棄,因爲您的wqeb服務器不允許爲我的域發送電子郵件。這是一個嚴重的失敗情況,可靠的電子郵件服務器只是將確認的垃圾郵件帶走。

這麼多的聯繫。我希望你討厭聯繫人,因爲gmail會高興地扔掉你得到的任何信息。

您需要將其列入白名單。但是壞消息 - 嘗試讓gmail將您的網絡服務器列入白名單非常有趣。即不可能。

那很簡單。

不要這樣做。當你想使用公共電子郵件服務器時,不要假裝自己是別人。

相關問題