В основном у меня есть html-форма, из которой я хочу получить пользовательский ввод, сгенерировать тело письма и отправить электронное письмо.Я никогда не программировал ничего подобного раньше, поэтому провел последние несколько дней, исследуя различные способы отправки электронных писем с веб-сайта, но ни один из найденных примеров не относится к моей конкретной ситуации.Дурачиться с разными методами, которые я нашел, тоже не принесло пользы.
В нынешнем виде у меня есть модель, которая объявляет каждую строку:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace myWebsite.Models
{
public class ServiceRequest
{
[Key]
public int serviceRequestID { get; set; }
[Required]
public string serviceRequestName { get; set; }
[Required]
public string serviceRequestEmail { get; set; }
public string serviceRequestCompany { get; set; }
public string serviceRequestAddress { get; set; }
[Required]
public string serviceType { get; set; }
public string serviceRequestCity { get; set; }
public string serviceRequestState { get; set; }
public string serviceRequestZip { get; set; }
[Required]
public string serviceRequestNumber { get; set; }
public string serviceRequestComments { get; set; }
}
}
Тогда в представлении IЯ создал форму с помощью @html помощников, чтобы связать строки из моей модели с полями ввода пользователя:
@model myWebsite.ServiceRequest
@using (Html.BeginForm("Email", "ServiceRequestsController", FormMethod.Post))
{
<div class="servicesReq">
<div class="serviceReqForm">
<div class="col-left">
<label>
<span class="required">* </span><span>Name:</span><br />
@Html.TextBoxFor(model => model.serviceRequestName)
</label><br />
<label>
<span class="required">* </span><span>Email:</span><br />
@Html.TextBoxFor(model => model.serviceRequestEmail)
</label><br />
<label>
<span>Company:</span><br />
@Html.TextBoxFor(model => model.serviceRequestCompany)
</label><br />
<label>
<span>Address:</span><br />
@Html.TextBoxFor(model => model.serviceRequestAddress)
</label><br /><br />
</div>
<div class="serviceTypeGrid">
<span class="required">* </span><span>Please choose what type of servicing you require:</span><br /><br />
</div>
<div class="col-left2">
<label class="serviceType">
@Html.RadioButton("serviceType", "Electrical") Electrical<br/>
@Html.RadioButton("serviceType", "Lighting") Lighting<br />
@Html.RadioButton("serviceType", "Energy") Energy<br />
@Html.RadioButton("serviceType", "Multiple") Multiple
</label><br /><br />
</div>
<div class="col-right">
<label>
<span>City:</span><br />
@Html.TextBoxFor(model => model.serviceRequestCity)
</label><br />
<label>
<span>State:</span><br />
@Html.TextBoxFor(model => model.serviceRequestState)
</label><br />
<label>
<span>Zip Code:</span><br />
@Html.TextBoxFor(model => model.serviceRequestZip)
</label><br />
<label>
<span class="required">* </span><span>Phone Number:</span><br />
@Html.TextBoxFor(model => model.serviceRequestNumber)
</label><br />
</div>
<label class="commentText">
<span>Comments:</span><br />
@Html.TextAreaFor(model => model.serviceRequestComments, new { @class = "servReqComment" })
</label>
<div class="formSubmitButton">
<input type="submit" value="Submit" /><br />
<br />
</div>
</div>
</div>
}
И, наконец, логика моего контроллера - вот где я почти полностью потерян:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading;
using System.Web;
using System.Web.Mvc;
using myWebsite.Models;
namespace myWebsite.Controllers
{
public class ServiceRequestsController : Controller
{
private CuttingEdgeWebsite2_0Context db = new CuttingEdgeWebsite2_0Context();
// GET: ServiceRequests
public ActionResult ServiceRequest()
{
return View();
}
}
}
Как я уже говорил, я искал несколько разных способов, но все они включали жесткое программирование тела письма.Все, что я пробовал с моими ограниченными знаниями, я не могу сгенерировать тело из пользовательского ввода в моей форме.Хотя у меня есть своего рода идея о том, как на самом деле отправлять почту, любое глубокое разъяснение этого процесса также было бы очень полезно.Если есть какая-то информация, которую я не предоставил здесь, которая может оказаться полезной, пожалуйста, дайте мне знать.