Я хочу отправить электронное письмо с вложенным файлом. когда я отправляю клиент и использую перерыв, чтобы проверить, какие данные я получаю, тогда файл изображения показывает ноль в контроллере. Кто-нибудь скажет мне, где моя ошибка и в чем проблема в моем коде. Поэтому я делюсь кодом контроллера, моделью и HTML, пожалуйста, просмотрите мой код и скажите, в чем проблема в моем коде.
Контроллер
[HttpPost]
public ActionResult Index(EmployeeModel obj)
{
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("abc@hotmail.com", "******");
MailMessage msgobj = new MailMessage();
msgobj.To.Add(obj.ToEmail);
msgobj.From = new MailAddress("abc@hotmail.com");
msgobj.Body = obj.EMailBody;
msgobj.Subject = obj.EmailSubject;
msgobj.CC.Add(obj.EmailCC);
msgobj.Bcc.Add(obj.EmailBCC);
if(obj.imageFile !=null)
{
msgobj.Attachments.Add(new Attachment(obj.imageFile.InputStream.ToString(), obj.imageFile.FileName));
}
client.Send(msgobj);
ViewBag.Success = "Email Send Successfully";
return View();
}
Модель:
[DataType(DataType.EmailAddress),Display(Name = "TO")]
[Required]
[Key]
public string ToEmail { get; set; }
[DataType(DataType.MultilineText)]
[Display(Name ="Body")]
[Required]
public string EMailBody { get; set; }
[Display(Name ="Subject")]
[Required]
public string EmailSubject { get; set; }
[Display(Name ="CC")]
[DataType(DataType.EmailAddress)]
public string EmailCC { get; set; }
[Display(Name ="BCC")]
[DataType(DataType.EmailAddress)]
public string EmailBCC { get; set; }
public HttpPostedFileWrapper imageFile { get; set; }
public string imageUrl { get; set; }
HTML
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Employee Model</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.ToEmail, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.ToEmail, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.ToEmail, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EMailBody, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EMailBody, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EMailBody, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EmailSubject, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EmailSubject, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EmailSubject, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EmailCC, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EmailCC, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EmailCC, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.EmailBCC, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.EmailBCC, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EmailBCC, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.imageFile, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="file" id="imageFile" name="imageFile" accept="image/jpeg, image/png" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Send" class="btn btn-default" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10 text-success">
@ViewBag.Status
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>