Показать индикатор выполнения с помощью smtpClient.send - PullRequest
3 голосов
/ 23 февраля 2011

Я использую эту функцию для отправки почты через gmail.

private bool uploadToGmail(string username, string password , string file , 
    string backupnumber)
{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("jain@gmail.com");
    mail.To.Add("jain@gmail.com");
    mail.Subject = "Backup mail- Dated- " + DateTime.Now + " part - " + 
        backupnumber;
    mail.Body = "Hi self. This mail contains \n backup number- " + 
        backupnumber + " \n Dated- " + DateTime.Now ;

    System.Net.Mail.Attachment attachment;
    attachment = new System.Net.Mail.Attachment(file);
    mail.Attachments.Add(attachment);

    SmtpServer.Port = 587;
    SmtpServer.Credentials = 
        new System.Net.NetworkCredential("jain@gmail.com", "password");
    SmtpServer.EnableSsl = true;

    SmtpServer.Timeout = 999999999;
    SmtpServer.Send(mail);
    //  MessageBox.Show("mail Sent");
    return true;
}

Теперь я хочу показать индикатор выполнения (в случае большого вложения), чтобы показать загрузку. Это возможно ? Я думаю, что знаю, как использовать индикатор выполнения, но не знаю, как использовать его с Smtpclient.send ().

любая помощь?

Спасибо

1 Ответ

3 голосов
/ 23 февраля 2011

Вы должны использовать SendAsync и подписаться на SendCompleted , чтобы знать, когда отправка вашей почты завершена.Нет способа получить ход процесса отправки, хотя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...