2014-02-23 81 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将您的网络服务器列入白名单非常有趣。即不可能。

那很简单。

不要这样做。当你想使用公共电子邮件服务器时,不要假装自己是别人。

相关问题