Array
(
)

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

Elias Sousa
   - 28 mai 2012

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 [{0}]. + subject;
}
if (e.Error != null)
{
lblTeste.Text = Error {1} occurred when sending mail [{0}] + subject + e.Error;;
}
else
{
lblTeste.Text = Message [{0}] sent. + subject;
}
}
Gostaria de saber o que estou fazendo de errado. Alguém poderia me ajudar.
Atenciosamente,
Elias Sousa.

Elias Sousa
   - 01 jun 2012

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.

0
|
0

Joel Rodrigues
   - 10 jun 2012

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

0
|
0