.Net : Enviando e-mails
por Lula
O CDONTS (Colaborative Data Objects for Windows NT) é um componente que pode ser utilizado pelo usuário do IIS (IUSR_NomedaMaquina) para o envio de e-mails. No Windows 2003, o componente mudou para o CDOSYS, mas é basicamente a mesma coisa.
Acontece que no .Net, o usuário da aplicação não é apenas o usuário do IIS. Quem faz a interpretação é o usuário ASP.NET, que não tem certos privilégios.
Pra utilizar o envio de e-mails em uma aplicação .Net, tem uma biblioteca do Framework chamada “Mail”.Pra utilizá-la no início da página faça a importação dela assim:
Imports System.Net.Mail
(Isto porque estamos usando o Framework 2.0, no .Net 2003, a biblioteca do Framework é outra)
Agora mandando o e-mail
Dim Mensagem As String
Mensagem = "Texto do E-mail" 'Se o e-mail for em HTML, as tags do HTML deve estar dentro deste texto também. Tipo <BR>, <B> e outros.
Dim SmtpMail As New SmtpClient 'Cria o client SMTP
'Para criar a nova mensagem de e-mail vamos passar os parêmetros :
'email de: Remetente
'email para: Destinatário
'Assunto do e-mail
'Corpo do e-mail
Dim Email As New MailMessage("emailde@dominio.com.br","emailpara@dominio.com.br", "Assunto do E-mail", Mensagem.ToString)
Email.Cc.Add("emailcopia@dominio.com.br")'Se quiser enviar o e-mail com cópia para alguém
Email.Bcc.Add("emailcopiaoculta@dominio.com.br") 'Se quiser enviar o e-mail com cópia oculta para alguém
'Configurações regionais, para evitar problemas com acentos e afins. Aqui está como Western Ocidental
Email.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
'Se for formatado em HTML
Email.IsBodyHtml = True
'IP ou nome do Host do servidor de e-mail. Geralmente pode ser o IP da própria máquina, que tem um SMTP virtual server instalado.
'Se não tiver, use o principal da sua rede, porém aí você pode ter problemas de usuário e senha para o envio do e-mail no servidor SMTP.
'Se for este o caso, antes disso, tem que ter a linha:
'SmtpMail.Credentials = New System.Net.NetworkCredential("usuario", "senha")
SmtpMail.Host = "127.0.0.1"
'Finalmente, envia o e-mail:
SmtpMail.Send(Email)
Este exemplo está usando a própria máquina de desenvolvimento (127.0.0.1) como servidor SMTP.