2015-05-20 9 views
1

Я пытаюсь отправить сообщения с помощью 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("[email protected]")); 
      mailMessage.Bcc.Add(new MailAddress("[email protected]")); 

      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> 

Теперь с помощью этого кода можно отправить по электронной почте правильно, но есть нет привязанности! Это потому, что я должен загрузить файл отдельно на сервере. На самом деле я не знаю, может ли кто-нибудь помочь мне.

+0

Если это код на стороне сервера, то прикрепляемые файлы должны быть доступны как файлы или в виде потока. Если веб-сервер означает, что контент должен быть загружен. – Richard

+0

http://stackoverflow.com/questions/15017132/how-to-send-email-with-attachment-in-asp-net –

+0

@Richard ... чтобы загрузить его на сервер, я сделал следующий код: if (fuAttachment.HasFile) { try { string filename = Path.GetFileName (fuAttachment.FileName); fuAttachment.SaveAs (Server.MapPath ("~ /") + имя файла); } catch (Exception ex) { загружен. Произошла следующая ошибка: «+ ex.Message; Response.Write (ex.ToString()); } } Но он не был загружен – user3305327

ответ

0

Установите свою форму enctype в multipart/form-data. В противном случае файл не будет отправлен на сервер, и ваше вложение не будет отправлено.

<form runat="server" enctype="multipart/form-data"> 
+0

У меня нет тега формы на странице ... его конструкция by site.master – user3305327

+0

Вы можете безопасно добавить атрибут enctype в тег формы в site.master. Он не должен влиять на поведение других форм. –

+0

... Я добавил его, но все же вложение не будет – user3305327