异步发送Email

   /// <summary>
        /// Sends the mail to gmail through STunnel
        /// </summary>
        /// <param name="fileInfo"></param>
        /// <param name="filename"></param>
        /// <param name="fullPath"></param>
        private void SendMail(FileInfo fileInfo, string filename, string fullPath)
        {
            if (Settings.FullDirectoryPathInSubject)
            {
                filename = fullPath;
            }
            mailSent = false;
            MailAddress toAddress = new MailAddress(Settings.EmailTo);
            MailAddress fromAddress = new MailAddress(Settings.EmailFrom);
            MailMessage mail = new MailMessage(fromAddress, toAddress);
            mail.Subject = string.Format("{0} {1}", Settings.EmailFilter, filename); ;
            mail.Body = filename;
            Attachment attachment = new Attachment(fullPath);
            mail.Attachments.Add(attachment);
            SmtpClient smtpClient = new SmtpClient(Settings.SmtpServer, Settings.SmtpPort);
            smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);            smtpClient.SendAsync(mail, fileInfo);
            while (!mailSent)
            {
                Thread.Sleep(500);
            }
            mail.Dispose();
        }
 
 
 /// <summary>
        /// This is called once the email is sent successfully
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            // Get the unique identifier for this asynchronous operation.
            FileInfo fileInfo = (FileInfo)e.UserState;
            string filename = Path.GetFileName(fileInfo.FullName);
            Console.WriteLine(">>>> File {0} sent", filename);
            if (e.Error != null)
            {
                Console.WriteLine("[{0}] {1}", fileInfo.FullName, e.Error.ToString());
            }
            mailSent = true;
        }
posted on 2011-05-16 12:41  上善若水123  阅读(417)  评论(0编辑  收藏  举报