Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Helio13

C# - Envio de email

Mensagens Recomendadas

Helio13

Boa noite pessoal,

Estou com um problema que não sei como resolver...

Eu tenho um método para o envio de emails, que está a funcionar correctamete.

public void SendMail()
	{
		try
		{
			MailMessage mail = new MailMessage();
			var smptClient = new SmtpClient("smtp.live.com", 587)
			{
				Credentials = new NetworkCredential("helio@hotmail.com", "123456"),
				EnableSsl = true
			};
			mail.From = new MailAddress("helio@hotmail.com");
			mail.To.Add("helio@hotmail.com");
			mail.Subject = "Test Mail";
			mail.Body = "This is for testing SMTP mail from GMAIL";
			smptClient.Send(mail);
			Response.Write("<script>alert('Send Email successfully')</script>");
		}
		catch (Exception ex)
		{
			Response.Write("<script>alert(' " + ex.ToString() + "')</script>");
		}
	}

O que quero é quando chame o método noutra parte do código, por exemplo:

SendMail();

Quero que caso ocorra algum erro, ele volte a tentar enviar o email, até 3 tentativas, se ao fim de 3 tentativas continuar a dar erro, mostre um alerta.

Penso que terei que passar o método de void para devolver uma string certo? e depois onde chamo o método colocar algo como um while ou assim...mas não sei muito bem como fazer...

Alguém me consegue ajudar?

Obrigado

Cumprimentos

Hélio

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

A opção mais fácil e viável será guardares numa variável o número de tentativas.

Mas se quiseres algo mais arrojado podes tentar algo dentro desta lógica:

public bool SendMail(int tentativa)
{
  try
  {
     MailMessage mail = new MailMessage();
     // etc..

     return true;
  }
  catch (Exception ex)
  {
    if(tentativa > 3)
       return false;

    SendMail(tentativa + 1);    
  }

 return false;
}

Inicias as tentativas a 1.

if(SendMail(1) == false)
{
   Response.Write("<script>alert('Já ultrapassaste as três tentativas permitidas...vai tomar um café!')</script>");
}

Editado por bioshock

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.