zoukankan      html  css  js  c++  java
  • Send Asynchronous Mail With Attachment Using ASP.Net 4.5

    Introduction

    This article explains how to send an email with attachments using SmtpClient.SendAsync. My Previous article explained sending Asynchronous Email in ASP.NET 4.5 I will now explain how to implement send asynchronous mail with an attachment in ASP.NET 4.5.
    Creating an Asynchronous Page
    Create a new project using "File" -> "New" -> "Project..." then select web "ASP .Net Web Forms Application". Name it " SendMailAsyncAttachment ".
    Send Asynchronous Mail1
    Next, create the code-behind as follows: The first step to building an asynchronous page is setting the Async attribute in the Page directive to true, as shown here:

    <%@ Page Language="C#" Async="true" %>
    Now, in the code behind file SendMailAttach.aspx use the following code.
    SendMailAttach.aspx

    <%@ Page Title="Sendmailasync with attachment" Async="true" Language="C#"MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="SendMailAttach.aspx.cs"Inherits="SendMailAsyncAttachment.SendMailAttach" % <asp:Content ID="Content1" ContentPlaceHolderID="titleContent" runat="server">Sendmailasync with attachment </asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">     <script type="text/javascript">         function validationCheck() {             var summary = "";             summary += isvalidName();             summary += isvalidEmail();             summary += isvalidSubject();             summary += isvalidMessage();             if (summary != "") {                 alert(summary);                 return false;             }             else {                 return true;             }         }         function isvalidName() {             var id;             var temp = document.getElementById("<%=txtName.ClientID %>");             id = temp.value;             if (id == "") {                 return ("Please enter Name" + " ");             }             else {                 return "";            }         }         function isvalidEmail() {             var id;             var temp = document.getElementById("<%=txtEmail.ClientID %>");              id = temp.value;              var re = /w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*/;              if (id == "") {                  return ("Please Enter Email" + " ");              }              else if (re.test(id)) {                  return "";              }
                
    else {                  return ("Email should be in the form abc@xyz.com" + " ");              }          }          function isvalidSubject() {              var id;              var temp = document.getElementById("<%=txtSubject.ClientID %>");             id = temp.value;             if (id == "") {                 return ("Please enter Subject" + " ");             }             else {                 return "";             }         }         function isvalidMessage() {             var id;             var temp = document.getElementById("<%=txtMessage.ClientID %>");              id = temp.value;              if (id == "") {                  return ("Please enter Message" + " ");              }              else {                  return "";              }          }
       
    </script></asp:Content><asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">      <table style="width: 100%;">         <tr>             <td>Name:</td>             <td>                 <asp:TextBox ID="txtName" runat="server" CssClass="txt"></asp:TextBox></td>             <td>&nbsp;</td>         </tr>         <tr>             <td>Email ID:</td>             <td>                 <asp:TextBox ID="txtEmail" runat="server" CssClass="txt"></asp:TextBox></td>             <td>&nbsp;</td>         </tr>         <tr>             <td>Subject:</td>             <td>                 <asp:TextBox ID="txtSubject" runat="server" CssClass="txt"></asp:TextBox></td>             <td>&nbsp;</td>         </tr>          <tr>              <td>Attach a file:</td>              <td>                  <asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" />              </td>              <td></td>          </tr>         <tr>             <td>Message:</td>             <td>                 <asp:TextBox ID="txtMessage" runat="server" Height="100px" Width="200px"CssClass="textarea" TextMode="MultiLine"></asp:TextBox>             </td>             <td>&nbsp;</td>         </tr>         <tr>             <td></td>             <td>                 <asp:Button ID="btnSendMail" runat="server" Text="Send Mail" CssClass="button"OnClick="btnSendMail_Click" /></td>         </tr>     </table></asp:Content>

    Create a SmtpClient.SendCompleted Event and SmtpClient.SendAsyncCancel Method and attachment

    Now, in the code behind file “SendMailAttach.aspx.cs “ use the following code.
    SendMailAttach.aspx.cs

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Net; using System.Net.Mail; using System.Net.Mime; using System.Threading; using System.ComponentModel; using System.Text; using System.Web.Util;
    namespace SendMailAsyncAttachment {     public partial class SendMailAttach : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {             Try             {                 if (!Page.IsPostBack)                 {                     btnSendMail.Attributes.Add("onclick", "javascript:return validationCheck()");                 }             }             catch (Exception ex)             {                 ShowMessage(ex.Message);             }         }         #region show message         /// <summary>         /// This function is used for show message.         /// </summary>         /// <param name="msg"></param>         void ShowMessage(string msg)         {             ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('" + msg + "');</script>");         }         #endregion        #region SendAsyncCancel         /// <summary>         /// this code used to SmtpClient.SendAsyncCancel Method         /// </summary>         // static bool mailSent = false;         void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)         {             if (e.Cancelled)             {                 ShowMessage("Send canceled.");             }             if (e.Error != null)             {                 ShowMessage(e.Error.ToString());             }             Else             {                 ShowMessage("Email sent successfully");             }         }         #endregion        #region SendMailAsync         /// <summary>         /// this code used to SmtpClient.SendCompleted Event and attaching the file         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         protected void btnSendMail_Click(object sender, EventArgs e)         {                      Try             {                 MailMessage message = new MailMessage();                 message.To.Add(txtEmail.Text.Trim());                 message.From = new MailAddress("YouEmailID@gmail.com","Sendmailasync Test");                 message.Subject = txtSubject.Text.Trim();                 message.Body = txtMessage.Text.Trim();                 message.IsBodyHtml = true;                               if (FileUpload1.HasFile)                 {                     message.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));                 }                 SmtpClient smtp = new SmtpClient();                 smtp.Host = "smtp.gmail.com";                 smtp.Credentials = new System.Net.NetworkCredential("YouEmailID@gmail.com", "YouPassword");                 smtp.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);                 smtp.EnableSsl = true;                 smtp.SendMailAsync(message);                           }             catch (Exception ex)             {                 ShowMessage(ex.Message);             }             clear();         }         #endregion        #region         /// <summary>         /// This Function is used TextBox Empty.         /// </summary>         void clear()         {             txtName.Text = string.Empty; txtEmail.Text = string.Empty; txtSubject.Text = string.Empty; txtMessage.Text = string.Empty;             txtName.Focus();         }         #endregion           } }

    Now run the page, it will look like this:
    Send Asynchronous Mail3
    Now, show in the Message box “Email sent successfully”.
    Send Asynchronous Mail4
    Now, see the following screen: SendMailAsync with Attachment.
    Send Asynchronous Mail5
    I hope this article is useful. If you have any other questions then please provide your comments in the following.

  • 相关阅读:
    用C#制作PDF文件全攻略
    侦测软件鸟哥linux学习笔记之源代码安装侦测软件
    类模式Java设计模式之十五(桥接模式)类模式
    安装配置Maven入门什么是maven和maven的安装和配置安装配置
    查看表空间oracle rman catalog目录数据库创建过程查看表空间
    产品群体互联网产品设计规划产品群体
    问题修改highcharts 导出图片 .net c#(二)问题修改
    音频播放android4.2音频管理技术音频播放
    重启启动eclipse 中启动Tomcat超时了错误如下:重启启动
    关系建立对于内向、不善于社交的人来说,如何建立人脉?关系建立
  • 原文地址:https://www.cnblogs.com/happy-Chen/p/3685889.html
Copyright © 2011-2022 走看看