locked
Enviar E-mail Silverlight x Ria Service RRS feed

  • Pergunta

  • Caros colegas, tenho um projeto Silverlight 5 com Ria Service e gostaria de saber como Enviar um e-mail através da aplicação.

    Na verdade seria uma lembrança de Senha, que enviaria para o usuário cadastrado no site, em caso do mesmo esquecer sua Senha.

    Ví alguns exemplo no fórum, porém nenhum funcionou.

    Alguém tem algum exemplo de classe que realmente funcione?

    Fico no aguardo ansioso, pois estou parado a mais de um mês com esse problema sem resolução.

    Joaci

    segunda-feira, 11 de março de 2013 13:19

Todas as Respostas

  • Boa tarde,

    O fato que você estar utilizando Ria Service não exclue a possibilidade de utilizar um WebService ou WCF. Já pensou nesta possibilidade?

    Já tentou este exemplo?

    http://www.codeproject.com/Tips/353086/Sent-Email-Yahoo-SMTP-with-Silverlight-5-WCF-RIA

    Espero que ajude,

    Atenciosamente,


    Samuel Fabel

    sexta-feira, 5 de abril de 2013 19:14
  • Olá caro Joaci,

    Abaixo está a classe que eu utilizo para envio de email em um projeto Silverlight. Acredito que se encaixa na sua necessidade. Como o email é enviado pelo sistema sem interação do usuário, pelo que percebi, você pode chamar o método SendMail da classe no próprio serviço do Ria Services, ao gravar o novo usuário. Veja abaixo a classe:

    public class Email
        {
            private const string GMailSmtp = "smtp.gmail.com";  //Aqui coloquei o SMTP do Gmail mas pode ser de qualquer servidor (host) de emails.
            private const int GMailPort = 587;  //Esta é a porta para o host do Gmail, se alterar pode ter que mudá-la.
            private const string GMailUsername = "seuendereçodeemail@gmail.com";
            private const string GMailPassword = "**suasenha**";
    
            public bool SendMail(string fromAddress, string toAddress, string subject, string body, Attachment[] attachments)
            {
                try
                {
                    var msg = new MailMessage
                        {
                            From = new MailAddress(fromAddress)                       
                        };
                    msg.To.Add(new MailAddress(toAddress));
                    msg.Subject = subject;
                    msg.Body = body;
                    msg.IsBodyHtml = true;   
                 
                    //Anexos
                    if (attachments != null)
                    {
                        foreach (var attachment in attachments)
                        {
                            msg.Attachments.Add(attachment);
                        }
                    }
                    //
    
                    var smtp = new SmtpClient(GMailSmtp, GMailPort);
                    smtp.UseDefaultCredentials = false;
                    var credential = new NetworkCredential(GMailUsername, GMailPassword);
                    smtp.Credentials = credential;
                    smtp.EnableSsl = true;
                    smtp.Send(msg);
                    return true;
                }
                catch (Exception exception)
                {
                    return false;
                }
            }
        }

    Tendo esta classe você pode enviar o email assim (no método de Insert do serviço por exemplo):

    var emailHeleper = new Email();                
    emailHeleper.SendMail("emaildodestinatário@email.com.br", "emaildoremetente@email.com.br", "Assunto do Email", "Mensagem do Email", new Attachment[] {});

    No caso acima, enviei o último parâmetro em branco, pois não tem anexos. Mas se tiver anexos, basta criar um array do objeto Attachment contendo todos os anexos necessários do email.

    OK!?

    Espero ter ajudado!

    • Sugerido como Resposta Fabio Rosa terça-feira, 23 de abril de 2013 23:31
    terça-feira, 23 de abril de 2013 23:29