2016-10-18 34 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(); 

}