ASP.net Envio de E-mail Usando CDOSYS
Em uma troca de servidor do site de um dos meus clientes, me deparei com um seguinte problema: Só era permitido o envio de emails usando o componente CDOSYS. Na hora eu pensei que era apenas em sites com asp, mas não, para a minha decepção e dor de cabeça piorar, as páginas asp.net também só enviavam com CDOSYS, e o pior o servidor tinha apenas tutorial para páginas asp. Como nunca tinha usado o CDOSYS em asp.net fui procurar no “google” mas achei apenas tutoriais em asp.
No final das contas eu mesmo sozinho adaptei o código com o pouco de conhecimento que tenho em asp.net e para minha surpresa funcionou.
Abaixo estão os códigos para envio de e-mails usando CDOSYS em asp.net (VB)
Usando o Visual Web developer 2008 criei uma página chamada form.aspx e abaixo está o código para montar a parte visual do seu formulário:
<form id=”form1″ runat=”server”>
<div>
<h2>
Fale Conosco</h2>
<p>
Nome:
<asp:TextBox ID=”txtnome” runat=”server” Width=”280px”></asp:TextBox>
<br />
E-mail:
<asp:TextBox ID=”txtemail” runat=”server” Width=”277px”></asp:TextBox>
<br />
Comentários:
<br />
<asp:TextBox ID=”txtcomentarios” runat=”server” Width=”326px” Height=”69px”
TextMode=”MultiLine”></asp:TextBox>
</p>
<p>
<asp:Button ID=”Button1″ runat=”server” Text=”Enviar” />
</p>
<p>
<asp:Label ID=”lblmensagem” runat=”server”></asp:Label>
<br />
</p>
</div>
</form>
Abaixo estão os códigos do arquivo form.aspx.vb com comentarios para enviar o e-mail.
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim nome As String = txtnome.Text ‘captura os dados do campo nome
Dim email As String = Trim(txtemail.Text) ‘Tira os espaços se houver e captura os dados do campo e-mail
Dim comentarios As String = txtcomentarios.Text ‘Captura os dados do campo comentarios
‘abaixo estão as configurações do CDOSYS o que deve ser alterado está com comentario o restante não precisa modificar
Dim sch = “http://schemas.microsoft.com/cdo/configuration/”
Dim cdoConfig = Server.CreateObject(“CDO.Configuration”)
cdoConfig.Fields.Item(sch & “sendusing”) = 2
cdoConfig.Fields.Item(sch & “smtpauthenticate”) = 1
cdoConfig.Fields.Item(sch & “smtpserver”) = “smtp.site.com.br” ‘digite seu servidor SMTP
cdoConfig.Fields.Item(sch & “smtpserverport”) = 25 ‘Digite a porta segura para envio 25 é padrão
cdoConfig.Fields.Item(sch & “smtpconnectiontimeout”) = 30
‘os e-mails são enviados apenas com autenticação por isso você terá que informar um email e senha válido
cdoConfig.Fields.Item(sch & “sendusername”) = “web@seu_dominio.com.br” ‘digite um email válido para autenticar
cdoConfig.Fields.Item(sch & “sendpassword”) = “senha” ‘digite sua senha
cdoConfig.fields.update()
Dim cdoMessage = Server.CreateObject(“CDO.Message”)
cdoMessage.Configuration = cdoConfig
cdoMessage.From = email ‘ENDEREÇO DE E-MAIL QUE SERÁ EXIBIDO NO FROM DA MENSAGEM
cdoMessage.To = “contato@seudomínio.com.br” ‘digite o email para qual a mensagem será entregue.
cdoMessage.Subject = “Fale Conosco” ‘ Digite o assunto da mensagem
Dim strBody = comentarios
cdoMessage.HTMLBody = strBody
Try
cdoMessage.Send()
cdoMessage = Nothing
cdoConfig = Nothing
‘se não houver erros a mensagem é enviada e a mensagem abaixo é exibida
lblmensagem.Text = “Mensagem entregue com sucesso”
‘limpa os campos do formulario
txtcomentarios.Text = Nothing
txtemail.Text = Nothing
txtnome.Text = Nothing
Catch ex As Exception
‘se houver algum erro, captura a mensagem de erro do servidor e exibe na tela
Dim erro_mail As String = “Erro na hora de enviar email : ” & ex.Message
lblmensagem.Text = erro_mail
cdoMessage = Nothing
cdoConfig = Nothing
End Try
End Sub
Pronto O sistema de envio de e-mail com CDOSYS está concluído.
Se houver alguma dúvida podem comentar que eu esclareço.


Boa tarde, estou tentando enviar email só q qdo rodo o cdosys.dll ou o cdonts.dll com o comando regsvr informa q o ” ‘regsvr’ nao é reconhecido como um comando interno ou externo, um programa operavel ou um arquivo em lotes.”
como faço pra conseguir fazer funcionar a aplicação???