Como enviar e-mail usando WS
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
Curtidas 0
Respostas
[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]
10/03/2009
Oi Régis,
consegui fazer o WebServices ?
Tema mais alguma dúvida relacionada ao assunto proposto ? Abraços Carlos Jr
Tema mais alguma dúvida relacionada ao assunto proposto ? Abraços Carlos Jr
GOSTEI 0
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]
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]
10/03/2009
Opa, tudo bem Régis ?
Estou aguardando seu retorno para saber se conseguiu fazer tudo ?
Abraços Carlos Jr
Abraços Carlos Jr
GOSTEI 0
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]
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
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