У меня есть контактная форма, созданная с помощью ASP.NET и C#, и я хочу заменить электронную почту от NetworkCredential на указанную в поле электронной почты.C# заменить почту от NetworkCredential
Я объясню проблему на примере.
Вот мой код:
public ActionResult Index(EmailFormModel vm)
{
if (ModelState.IsValid)
{
MailMessage msz = new MailMessage();
msz.From = new MailAddress(vm.Email); //Email which you are getting from contact us page
msz.To.Add("[email protected]"); //Where mail will be sent
msz.Subject = vm.Subject;
msz.Body = vm.Message;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "my-password");
smtp.EnableSsl = true;
smtp.Send(msz);
ModelState.Clear();
}
return View();
}
Вид:
<% using (Html.BeginForm("Index", "SendMail", FormMethod.Post))
{%>
<%: Html.ValidationSummary("Please correct the errors and try again.") %>
<p>Email: </p>
<%: Html.TextBoxFor(m => m.Email)%>
<p>Subject: </p>
<%: Html.TextBoxFor(m => m.Subject)%>
<p>Message: </p>
<%: Html.TextBoxFor(m => m.Message)%>
<input type ="submit" value ="Send" />
<% } %>
Пример: Когда я посылаю письмо, я хочу, чтобы это было отправлено с адреса, указанного в vm.Email
, а не из [email protected]
(один из NetworkCredential), на `[email protected]
Прямо сейчас, если я попытаюсь отправить электронное письмо от [email protected]
до [email protected]
, отправитель по-прежнему [email protected]
. Надеюсь, я ясно дал понять эту проблему ... спросите меня, если что-то неясно :).
Попробуйте отрегулировать строку из строки, чтобы сказать 'msz.From = new MailAddress (vm.Email, vm.Email.ToString());' – galacticfan
Это работает, но полученная почта имеет следующий формат: 'valid-email @ gmail.com <[email protected]> '. Могу ли я избавиться от '<[email protected]>'? – Valip
@PavelValeriu Это, вероятно, gmail, потому что вы аутентифицируетесь как 'my-email @ gmail.com', это, вероятно, хорошо для вас, потому что есть вероятность 90%, если вы пришлете мне письмо, которое утверждает, что оно me_ моя система электронной почты будет считать вас спамом. – CodingGorilla