Como enviar e-mail usando WS

10/03/2009

Bom dia,     Preciso criar uma nova senha e enviar por e-mail para o usuário que esqueceu a senha, porém, esse sistema de esqueci a senha será solicitado por um WebService.   Como eu posso fazer para enviar e-mail pelo WS?     Att     Regis  
Régis Mello

Régis Mello

Curtidas 0

Respostas

[devmedia .net]

[devmedia .net]

10/03/2009

E aí Régis, tudo bem ?   Você deve usar o mesmo sistema de envio de email do asp.net para webservices, a única alteração é que a interface será um WS.   Fiz uma video aula (duas partes) sobre envio de email totalmente configurado, utilize a mesma estrutura da aula abaixo para criar seu webservice.   https://www.devmedia.com.br/articles/viewcomp.asp?comp=9287   https://www.devmedia.com.br/articles/viewcomp.asp?comp=9288   Caso não tenha acesso à aula solicite o mesmo a mim e lhe concederemos o acesso gratuitamente.   Além da video aula escrevi abaixo um passo a passo exatamente sobre como enviar email através do WS.   Explicação da Biblioteca  “System.Net.Mail” É uma biblioteca dos sitema que cuida das classes necessarias para enviar email . Usaremos as seguintes classes derivadas do da biblioteca  “System.Net.Mail” ·         MailMessage = classe  referente a mensagem ( conteudo, destinatario , titulo , anexos , conteudo) ·         Smtp = classe relacionada a conexão com o Servidor Smtp ·         MailMessage  = classe relacionada a email (endereço  e  nome ­) Usaremos tambem a seguinte biblioteca  “System.Net” ·         NetworkCredential = classe relacionada a credenciais de segurança. MailMessage Propriedades  Importantes ·         MailMessage.to  = Propriedade referente aos destinatarios o   MailMessage.to .add(destinatario) – Adicionar destiantario pode ser uma string o   MailMessage.to .remove(destinatario) – Remove objeto do tipo  MailAddress o   MailMessage.to .clear() – Remove todos os destiantarios. o   MailMessage.to .count –Informa a quantidade de destinatarios ·         MailMessage .Subject  =  Propriedade referente ao Assunto. ·         MailMessage .From = Propriedade referente ao Remetente (objeto MailAddress) ·         MailMessage .body = Corpo da mensagem o   Caso a opção “message.IsBodyHtml” estaja true a mensagem suporta conteudo em html.   Smtp Propriedades referente a configuração do cliente smtp . ·         SMTP.Host =  string de endereço do servidor ·         SMTP.EnableSsl  = Ativa ou desativa script de segurança ·         SMTP.Port  = Numero da porta usada no serviço ·         SMTP .UseDefaultCredentials  = Define se a credencial vai ser  a padrão no web.conf ou se sera definida uma alternativa ·         SMTP.Credentials  = Define qual credencial sera usada caso a opção SMTP .UseDefaultCredentials   estreja  igual a verdadeiro . o   *Obs : usara-se o construtor new System.Net.NetworkCredential(“email”,”senha”) para se criar o objeto usado nesta propriedade . Enfim usei o metodo SMTP.Send(message) para concluirmos o envio. Pratica Abra seu visual studio e crie um novo webservice usando o nome que desejarem. Com a aplicação aberta vamos dar inicio a nossa criação dentro do arquivo Service.cs  adicione a referencia using System.Net.Mail; crie  o seguinte metodo [WebMethod]     public string enviaremail(string Destinatario, string assunto, string mensagem)     {       } Como você já deve ter percebido o metodo se trata de um metodo web recebera 3 strings (destinatario , Assunto e a mensagem) e retornara somente uma string (enviaremail) Vamos começar a implementação do codigo vamos criar um laço de try e catch para cuidarmos dos erros. Try { ///Codigo sera do email sera inserido aqui return "msg enviada com sucesso"; } catch (Exception ex) { return "Erro ao mandar o  email : " + ex.Message; } o nosso metodo já responde algo quando invocado mais ainda não manda email  dentro daonde esta indicado “///Codigo sera do email sera inserido aqui” deve ser alterado para message.To.Add(destinatario);             message.To.Remove(new MailAddress(destinatario));             message.Subject = assunto;             message.From = new MailAddress("Seu email ");             message.IsBodyHtml = False;             message.Body = “olá mensagem de teste \n  “  + assunto     ;             SmtpClient smtp = new SmtpClient("smtp.gmail.com");              smtp.UseDefaultCredentials = false;             smtp.EnableSsl = true;             smtp.Credentials = new System.Net.NetworkCredential("Seu email ", "Sua senha");             smtp.Port = 587;             smtp.Send(message); Os campos “Seu email “ e “Sua senha” deverão sera alterados de acordo com sua conta . O Codigo  é de facil personalização de acordo com sua necessidade . Ao rodar o Werbservice ja sera visivel o nosso serviço para ser testado caso teja feio como acima sera  totalmente funcional . Aguardo seu retorno, Abraços Carlos Jr
GOSTEI 0
[devmedia .net]

[devmedia .net]

10/03/2009

Oi Régis, consegui fazer o WebServices ?
Tema mais alguma dúvida relacionada ao assunto proposto ? Abraços Carlos Jr
GOSTEI 0
Régis Mello

Régis Mello

10/03/2009

Tenho um monte, mas preciso ir montando e as dúvidas vão aparecendo, e vou postando aqui.   Att   Regis
GOSTEI 0
[devmedia .net]

[devmedia .net]

10/03/2009

Oi Régis, tudo bem ? Lhe enviei a solução completa e funcional, é apenas copiar e colar o código, fazendo suas configurações particulares.   Fico no aguardo para continuarmos o atendimento ou finalizarmos o chamado.   Carlos Jr
GOSTEI 0
[devmedia .net]

[devmedia .net]

10/03/2009

Opa, tudo bem Régis ? Estou aguardando seu retorno para saber se conseguiu fazer tudo ?

Abraços   Carlos Jr
GOSTEI 0
Régis Mello

Régis Mello

10/03/2009

Ainda nao consegui, tenho que fazer algumas adaptações e não estão funcionando.        Att Regis
GOSTEI 0
[devmedia .net]

[devmedia .net]

10/03/2009

Oi Régis, fique á vontade para me falar sua dúvida, para que possamos resolver juntos, desde que seja do mesmo assunto da abertura do chamado.   Abraços   Carlos Jr
GOSTEI 0
Régis Mello

Régis Mello

10/03/2009

Ok, eu avisarei, no momento, estou tentando configurar o servidor para funcionar o e-mail, pois está dando erro, e estou tentando adaptar para minha realidade seu código.   Vou postando aqui minha dúvidas.   Regis
GOSTEI 0
POSTAR