Я разработал приложение, которое позволяет отправлять электронные письма нескольким получателям.Чтобы получать электронные письма от получателей, я использую автозаполнение и разделяю различные электронные письма с помощью "," Пример: aaa @ gmail.com, bbb @ gmail.com
Проблема заключается в том, что при нажатии кнопки для отправки, это не работает, и вы получаете следующую ошибку: В заголовке письма обнаружен недопустимый символ: ','.
Контроллер
[HttpPost]
[ValidateInput(false)]
public ActionResult Index(EmailModel model, List<HttpPostedFileBase> attachments)
{
model.Email = "xxxxx@gmail.com";
using (MailMessage mm = new MailMessage(model.Email, model.Destinatário))
{
mm.From = new MailAddress("xxxxx@gmail.com");
model.Password = "xxxxx";
mm.Subject = model.Assunto;
mm.Body = model.Mensagem;
foreach (HttpPostedFileBase attachment in attachments)
{
if (attachment != null)
{
string fileName = Path.GetFileName(attachment.FileName);
mm.Attachments.Add(new Attachment(attachment.InputStream, fileName));
}
}
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential(model.Email, model.Password);
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
ViewBag.Message = "Sucess!";
}
return View();
}
JavaScript
<script type="text/javascript">
$(function () {
$("#email").autocomplete({
source: function (request, response) {
$.ajax(
{
url: '/Email/AutoComplete/',
data: "{ 'prefix': '" + GetCurrentSearchTerm(request.term) + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
cache: false,
success: function (data) {
response($.map(data, function (item) {
return {
label: item.label,
value: item.val,
nome: item.val
};
}))
}
})
},
select: function (event, ui) {
var LastValue = splitCurrentText(this.value);
LastValue.pop();
LastValue.push(ui.item.value);
LastValue.push("");
this.value = LastValue.join(",");
return false;
},
focus: function () {
return false;
}
});
function splitCurrentText(LastTerm) {
return LastTerm.split(/,\s*/);
}
function GetCurrentSearchTerm(LastTerm) {
return splitCurrentText(LastTerm).pop();
}
});
</script>