Ajuda com envio de e-mail assíncrono (SendAsync).

28/05/2012

0

Amigos, boa tarde!

Andei pesquisando na internet como enviar e-mail de forma assíncrona. Entrei em vários artigos/fóruns e todos ensinam praticamente da mesma forma, sendo que em nenhum deles consegui fazer esta tarefa de envio, pois ao final é apresentando um erro com a seguinte mensagem: falha no envio. Segue a baixo o código:

protected void teste_Click(object sender, EventArgs e)
{
try
{

MailMessage message = new MailMessage();
message.Subject = teste;
message.From = new MailAddress(cotiexemplo@gmail.com);
message.To.Add(elias.kovalet@gmail.com);
message.IsBodyHtml = true;

message.Body = Teste;


SmtpClient smtp = new SmtpClient(smtp.gmail.com);
smtp.UseDefaultCredentials = true;
smtp.EnableSsl = true;
smtp.Credentials = new System.Net.NetworkCredential(cotiexemplo@gmail.com, @coticoti@);
smtp.Port = 587;

smtp.SendCompleted += new SendCompletedEventHandler(client_SendCompleted);

object userState = message;
smtp.SendAsync(message, userState);


}
catch (Exception exception)
{
lblTeste.Text = exception.Message;
}

}
private void client_SendCompleted(object sender, AsyncCompletedEventArgs e)
{
//Get the Original MailMessage object
MailMessage mail = (MailMessage)e.UserState;
//write out the subject
string subject = mail.Subject;
if (e.Cancelled)
{
lblTeste.Text = Send canceled for mail with subject []. + subject;
}
if (e.Error != null)
{
lblTeste.Text = Error occurred when sending mail [] + subject + e.Error;;
}
else
{
lblTeste.Text = Message [] sent. + subject;
}
}

Gostaria de saber o que estou fazendo de errado. Alguém poderia me ajudar.

Atenciosamente,
Elias Sousa.
Elias Sousa

Elias Sousa

Responder

Posts

01/06/2012

Elias Sousa

Bom pessoal,

Consegui encontrar a solução para este problema. Então vou estar postando aqui. No caso o código postado está correto. O que precisava ser feito para funcionar é declarar na diretiva da página está opção - Async=true.
Exemplo completo:

<%@ Page Language=C# AutoEventWireup=true CodeBehind=WebForm4.aspx.cs Inherits=update.WebForm4 Async=true %>

Espero esta situação resolvida possa ajudar mais pessoas.
Responder

10/06/2012

Joel Rodrigues

Perfeito, Elias, que bom que deu certo.
Obrigado por compartilhar com a comunidade.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar