Почтовые вложения с использованием asp.net
Я пытаюсь отправить письмо с вложениями, используя asp.net. Для этого я сделал следующий код:
Default.aspx.cs:
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]);
mailMessage.Subject = "Test Subject";
mailMessage.Body = myString.ToString();
if (fuAttachment.HasFile)
{
string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
mailMessage.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
mailMessage.IsBodyHtml = true;
mailMessage.To.Add(new MailAddress(txtem.Text.ToString()));
mailMessage.CC.Add(new MailAddress("sample@test.com"));
mailMessage.Bcc.Add(new MailAddress("sample1@test.com"));
SmtpClient smtp = new SmtpClient();
smtp.Host = ConfigurationManager.AppSettings["Host"];
smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
smtp.Send(mailMessage);
}
Default.aspx:
<tr>
<td align="left">Passport Scan Copy</td>
<td align="left">
<asp:FileUpload ID="fuAttachment" runat="server" />
</td>
</tr>
Теперь с этим кодом я могу отправлять электронную почту правильно, но вложения нет! Это потому, что я должен загрузить файл отдельно на сервере. На самом деле не знаю, может ли кто-нибудь, пожалуйста, помогите мне.
1 ответ
Решение
Установите тип формы enct для multipart/form-data. В противном случае файл не будет опубликован на сервере, и ваше вложение не будет отправлено.
<form runat="server" enctype="multipart/form-data">