如何更改发件人的电子邮件和姓名?

时间:2014-02-23 18:45:44

标签: c# .net asp.net-mvc email asp.net-mail

我尝试在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("addressee@example.com");
        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("my.email@gmail.com","my.pass");
        smtp.EnableSsl = true;
        smtp.Send(mail);
    }

1 个答案:

答案 0 :(得分:1)

  

我想显示电子邮件以及从我的联系表单中发送的用户的姓名   帮助

是。不要那样做。曾经听说过垃圾邮件?人们在其他域帐户中发送电子邮件?

一种打击SPF的方法 - 对任何想要被滥用的人运营的域名进行标准审批。

SPF告诉某个域允许哪个服务器发送电子邮件。

那么,现在发生的是:

  • 我填写了您的联系表格。
  • 您的网络服务器会将电子邮件发送到您的电子邮件服务器它使用我的电子邮件作为发件人。
  • 您的电子邮件服务器会查看我的域名,检查SPF记录并将其丢弃,因为您的wqeb服务器不允许为我的域发送电子邮件。这是一个严重失败的情况,而且不可靠的电子邮件服务器只会抛出已确认的垃圾邮件。

非常适合联系。我希望你讨厌联系,因为gmail很乐意抛弃你得到的任何信息。

您需要将其列入白名单。但是坏消息 - 试着让gmail将你的网络服务器列入白名单很有趣。即不可能。

那很简单。

不要这样做。

,当你想使用公共电子邮件服务器时,不要假装别人