Parte 1
Introdução
Neste conjunto de artigos mostrarei como criar uma webapplication usando um webservice que introduzira um metodo de enviar e-mails usando um servidor SMTP, que pode ser tanto um em sua hospedagem como qualquer um disponivel gratuitamente (Gmail , bol , yahoo e outros) .
Ensinarei passo a passo como criar e consumir o webservice de forma simples e bem didatica podendo ser usando desde um sistema de resposta de cadastros , um sistema de feeds ou até um spamer mesmo não sendo muito recomendado.
A aula é bastante especifica e detalhada.
Aviso a ferramenta está disponivel desde o .Net Framework 2.0.
O metodo não exige ser aplicado em um webservice , pode ser aplicado diretamente em uma aplicação desktop ou web.
Estrutura da Aplicação
Nesta apresentação eu esplicarei de maneira simples como funciona o serviço.
1º O usuario faz a requisição ao usar uma aplicação (Desktop, Web ou portatil) faz a requisição utilizando a internet a um webservice.
2º O webservice analiza a requisição e a executa.
3º O metodo envocado trata de realizar a rotina .
4º A mensagem é enviada ao servidor usando SMTP .
5º Caso a mensagem sofra algum problema ao ser enviado o metodo de excessão entra em contato com o requisitante em meio de uma String de resposta em meio a resposta do Webservice , caso contrario vira uma string confirmando a operação.
Esplicaçã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 usaremos o metodo SMTP.Send(message) para concluirmos o envio.
Pratica
Abram seu visual studio e criem 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)
{
}
[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 .
No proxima artigo ensinarei como emplementar o codigo acima com alguns aperfeiçõamentos como enviar arquivos e como elaborar uma pagina de contato com confirmação com gerador de numero de protocolo.