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)

    {

 

    }

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.