У меня есть сайт со страницей «Свяжитесь с нами», и я хочу, чтобы мои пользователи могли использовать эту форму для отправки мне электронного письма. Моя электронная почта, конечно, не отображается, но я прошу пользователя поместить свое имя, фамилию, адрес электронной почты и сообщение в форму начальной загрузки 4.xxx (последняя) и нажать «Отправить». Однако, когда я нажимаю «Отправить», данные не загружаются в метод ActionResult в моем HomeController.
Я также заметил ошибку с моей функцией javascript при отправке по щелчку, ошибка в том, что она равна нулю. Я использую Route-Config для получения данных, но я не уверен, что это правильный путь на данный момент. Я не хочу использовать помощники Html (только HtmlBeginForm).
У меня было много итераций, так что это не совсем лучшее, но этого достаточно, чтобы увидеть мои проблемы.
Домашний контроллер:
[HttpPost]
public async Task<ActionResult> Email(FormCollection form)`enter code here`
{
var firstName = form["firstName"];
var lastName = form["lastNname"];
var email = form["senderEmail"];
var message = form["emailMessage"];
var x = await ContactForm(firstName, lastName, email, message);
return RedirectToAction("Send");
}
private async Task<ActionResult> ContactForm(string firstName, string lastName, string email, string message)
{
try
{
MailMessage messages = new MailMessage();
messages.To.Add("[email protected]");
messages.From = new MailAddress(email);
messages.Subject = "Contact Page Email";
messages.Body = message;
messages.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
var credential = new NetworkCredential
{
UserName = "[email protected]",
Password = "*****"
};
smtp.Credentials = credential;
smtp.Host = "smtp-mail-outlook.com";
smtp.Port = 587;
smtp.EnableSsl = true;
await smtp.SendMailAsync(messages);
}
}
catch (Exception ex)
...
HTML:
@using (Html.BeginForm("Email", "Home", FormMethod.Post))
{
<form name="sendMessage" id="contactForm">
<div class="form-row">
<div class="col">
<label for="firstName">First Name:</label>
<input type="text" class="form-control" placeholder="First Name" id="firstName" name="firstName">
<div class="invalid-feedback">Enter a first name.</div>
</div>
<div class="col">
<label for="lastName">Last Name:</label>
<input type="text" class="form-control" placeholder="Last Name" id="lastName" name="lastName">
<div class="invalid-feedback">Enter a last name.</div>
</div>
</div>
<div class="form-group">
<label for="inputEmail">Email Address:</label>
<input type="email" class="form-control" id="email" placeholder="[email protected]" name="senderEmail">
</div>
<div class="form-group">
<label for="emailMessage">Message:</label>
<textarea class="form-control" id="message" rows="5" name="emailMessage"></textarea>
<div class="invalid-feedback">Enter a message.</div>
</div>
<button type="submit" class="btn btn-primary btn-lg " onclick="myFunction()">Send</button>
</form>
Электронная почта с именем, фамилией, электронной почтой отправителя, сообщение в моем почтовом ящике.