2016-10-18 6 views
1

У меня есть форма, которая отправляет информацию по электронной почте на рабочий счет, однако я не уверен, как разрешить пользователям прикреплять документы и отправлять их через контактную форму.Отправить вложение в форму asp.net

<p> 
    Your name: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="*" 
     ControlToValidate="YourName" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="YourName" runat="server" Width="250px" /><br /> 
    Your email address: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
     ControlToValidate="YourEmail" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="YourEmail" runat="server" Width="250px" /> 
    <asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator23" 
     SetFocusOnError="true" Text="Example: [email protected]" ControlToValidate="YourEmail" 
     ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" 
     ValidationGroup="save" /><br /> 
    Subject: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" 
     ControlToValidate="YourSubject" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="YourSubject" runat="server" Width="400px" /><br /> 
    Your Question: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" 
     ControlToValidate="Comments" ValidationGroup="save" /><br /> 
    <asp:TextBox ID="Comments" runat="server" 
      TextMode="MultiLine" Rows="10" Width="400px" /><br /> 
    Upload a file: 
    <input type="file" name="attachment" id="attachment" /> 
</p> 
<p> 
    <asp:Button ID="btnSubmit" runat="server" Text="Send" 
       OnClick="Button1_Click" ValidationGroup="save" /> 
</p> 

и вот мой код:

protected void SendMail() 
    { 
     // Gmail Address from where you send the mail 
     var fromAddress = ""; 
     // any address where the email will be sending 
     var toAddress = ""; 
     //Password of your gmail address 
     const string fromPassword = ""; 
     // Passing the values and make a email formate to display 
     string subject = YourSubject.Text.ToString(); 
     string body = "From: " + YourName.Text + "\n"; 
     body += "Email: " + YourEmail.Text + "\n"; 
     body += "Subject: " + YourSubject.Text + "\n"; 
     body += "Question: \n" + Comments.Text + "\n"; 
     // smtp settings 
     var smtp = new System.Net.Mail.SmtpClient(); 
     { 
      smtp.Host = "smtp-mail.outlook.com"; 
      smtp.Port = 587; 
      smtp.EnableSsl = true; 
      smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
      smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); 
      smtp.Timeout = 20000; 
     } 
     // Passing values to smtp object 
     smtp.Send(fromAddress, toAddress, subject, body); 
    } 

Может кто-то еще?

ответ

0

Это метод, который я использовал для отправки сообщения с приложением. Он похож на ваш, но я создаю объект MailMessage, в котором есть коллекция вложений, в которую вы можете добавлять файлы ... Если вы хотите, чтобы пользователи загружали файлы, вам нужно будет добавить код, чтобы сохранить их в облаке или на ваш сервер или где-нибудь, где они доступны, пока они не будут отправлены.

public void EmailRO(string recipient, string attachmentPath) 
{ 

     var SMTP = new SmtpClient 
     { 
      Host = "YourHost", 
      Port = 12345, //your port 
      EnableSsl = true, // or false 
      DeliveryMethod = SmtpDeliveryMethod.Network, 
      UseDefaultCredentials = false, 
      Credentials = new NetworkCredential("YourUserName", "YourPassword") 
     }; 

     Thread T1 = new Thread(delegate() 
     { 
      try 
      { 
       using (var message = new MailMessage("YourSmtpUserName", recipient) 
       { 
        Subject = "My Subject", 
        Body = "My Body", 
        From = new MailAddress("YourUserName", "YourDisplayName"), 
        IsBodyHtml = true 
       }) 
       { 
        { 
         message.Attachments.Add(new Attachment("YourAttachmentPath")); 
         SMTP.Send(message); 
        } 
       } 
      } 
      catch (ArgumentException) 
      { 
       // handle exception 
      } 
     }); 
     T1.IsBackground = true; 
     T1.Start(); 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^