Как я могу изменить адрес электронной почты и имя отправителя?

Я пытаюсь создать контактную форму в 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 ответ

Я хочу показать адрес электронной почты и имя пользователя, который отправил его из моей контактной формы, любая помощь?

Да. НЕ ДЕЛАЙ ЭТОГО. Вы когда-нибудь слышали о спаме? Люди, отправляющие письма в учетные записи других доменов?

Одним из способов борьбы с этим является SPF - стандартный подход для любого домена, который не управляется кем-то, кто хочет подвергнуться насилию.

SPF сообщает домену, какому серверу разрешено отправлять электронные письма.

Итак, что происходит сейчас, это:

  • Я заполняю вашу контактную форму.
  • Ваш веб-сервер отправляет электронную почту на ваш почтовый сервер. Он использует мою электронную почту в качестве отправителя.
  • Ваш почтовый сервер видит мой домен, проверяет запись SPF и выбрасывает ее, потому что вашему wqeb-серверу не разрешено отправлять электронные письма для моего домена. Это серьезное условие сбоя, и почтовый сервер может просто уйти от подтвержденного спама.

Так много для контакта. Надеюсь, вы ненавидите контакты, потому что Gmail с радостью выбросит любую полученную вами информацию.

Вы должны внести это в белый список. Но плохие новости - получайте удовольствие, пытаясь заставить gmail внести в белый список ваш веб-сервер. Т.е. не возможно.

Так просто.

Не делай этого. Не притворяйтесь кем-то другим, чем вы, когда вы хотите использовать публичный почтовый сервер.

Другие вопросы по тегам