O CDOSYS é um componente que tem como propósito envio de e-mails.
Ele é utilizado no processamento de formulários de e-mail.
Enviar e-mails com o uso de formulários envolve normalmente dois arquivos, o formulário em si e um script que processa as informações inseridas nos campos do formulário e executa a ação do envio do e-mail.
Existe um detalhe que deve ser observado sempre, os campos que são preenchidos no formulário devem ser obrigatoriamente referenciados no script que processa o e-mail.
No exemplo abaixo, consideramos um formulário simples com os campos de Nome do Remetente, Endereço do Remetente, Assunto e mensagem.
1) Crie um arquivo dentro da sua hospedagem com o conteúdo abaixo e nomeie-o como formulario.html
< html>
< head>
< title>Formulário de Contato< /title>
< meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
< /head>
< body bgcolor=”#FFFFFF” text=”#000000″>
< div align=”center”>
< p>< font face=”Arial, Helvetica, sans-serif” size=”2″>< b>< font color=”#FF0000″ size=”4″ face=”Times New Roman, Times, serif”>Formulário de Contato< /font>< /b>< /font>< /p>
< form method=”post” enctype=”multpart/formdata” name=”form1″ action=”enviar.asp”>
< table width=”47%” border=”1″ cellspacing=”2″ cellpadding=”2″>
< tr>
< td width=”33%”>< font face=”Times New Roman, Times, serif” size=”3″>Nome
do Remetente: < /font>< /td>
< td width=”67%”>< font face=”Arial, Helvetica, sans-serif” size=”2″>
< input type=”text” name=”nomerem” size=”55″>
< /font>< /td>
< /tr>
< tr>
< td width=”33%”>< font face=”Times New Roman, Times, serif” size=”3″>E-mail
do remetente: < /font>< /td>
< td width=”67%”>< font face=”Arial, Helvetica, sans-serif” size=”2″>
< input type=”text” name=”emailrem” size=”55″>
< /font>< /td>
< /tr>
< tr>
< td width=”33%”>< font face=”Times New Roman, Times, serif” size=”3″>Assunto: < /font>< /td>
< td width=”67%”>< font face=”Arial, Helvetica, sans-serif” size=”2″>
< input type=”text” name=”assunto” size=”55″>
< /font>< /td>
< /tr>
< tr>
< td width=”33%”>< font face=”Times New Roman, Times, serif” size=”3″>Mensagem:< /font>< /td>
< td width=”67%”>
< textarea name=”recado” rows=”7″ cols=”52″>< /textarea>
< /td>
< /tr>
< tr>
< td colspan=”2″>
< div align=”center”>
< input type=”submit” name=”Submit” value=”Enviar”>
< input type=”reset” name=”reset” value=”Limpar”>
< /div>
< /td>
< /tr>
< /table>
< /form>
< p>Powered by < a target=”_blank” href=”http://www.uolhost.com.br”>UOL HOST – Hospedagem de Sites< /p>
< /div>
< /body>
< /html>
OBS: Ao copiar o código retire os espaços.
2 ) No mesmo diretório, crie um arquivo chamado enviar.asp com o conteúdo abaixo:
< %
sch = “http://schemas.microsoft.com/cdo/configuration/”
Set cdoConfig = Server.CreateObject(“CDO.Configuration”)
‘Variaveis
Dim meuservidorsmtp
Dim minhacontaautenticada
Dim minhasenhaparaenvio
Dim emailorigem
Dim emaildestino
‘Abaixo seguem algumas definicoes de variaveis para o envio de seu formulario. Por favor preencha os campos abaixo.
meuservidorsmtp = “smtp.meudominio” ‘ Informacoes so seu servidor SMTP
minhacontaautenticada = “conta@meudominio” ‘ conta de e-mail utilizada para enviar
minhasenhaparaenvio = “minhasenha” ‘ senha da conta de e-mail
emailorigem = “emailorigem@dominio” ‘ e-mail que indica de onde partiu a mensagem
emaildestino = “emaildestino@dominio” ‘ e-mail que vai receber as mensagens do formulario
‘Fim da definição manual de parâmetros.
cdoConfig.Fields.Item(sch & “sendusing”) = 2
cdoConfig.Fields.Item(sch & “smtpauthenticate”) = 1
cdoConfig.Fields.Item(sch & “smtpserver”) = meuservidorsmtp
cdoConfig.Fields.Item(sch & “smtpserverport”) = 587
cdoConfig.Fields.Item(sch & “smtpconnectiontimeout”) = 30
cdoConfig.Fields.Item(sch & “sendusername”) = minhacontaautenticada
cdoConfig.Fields.Item(sch & “sendpassword”) = minhasenhaparaenvio
cdoConfig.fields.update
Set cdoMessage = Server.CreateObject(“CDO.Message”)
Set cdoMessage.Configuration = cdoConfig
cdoMessage.BodyPart.Charset = “iso-8859-1”
cdoMessage.From = emailorigem
cdoMessage.To = emaildestino
cdoMessage.Subject = “Formulario de Contato”
cdoMessage.ReplyTo = Request(“emailrem”)
strBody = “Dados < br> < br>” & _
“Nome:”& Request(“nomerem”)& “< br>” & _
“E-Mail:”& Request(“emailrem”)& “< br>” & _
“Assunto:”& Request(“assunto”)& “< br>” & _
“Mensagem:”& Request(“recado”)
strBody = strBody & “.”
cdoMessage.HTMLBody = strBody
cdoMessage.Send
Set cdoMessage = Nothing
Set cdoConfig = Nothing
response.write “O e-mail foi processado e enviado com sucesso”
%>
OBS: Ao copiar o código retire os espaços.
OBSERVAÇÕES:
– Substitua as informações de SMTP solicitadas no código acima pelos dados do domínio temporário existentes em seu painel do cliente (assim mesmo sem transferir os DNS´s, você poderá testar o formulário) e os dados da conta de e-mail de acordo com a caixa que você pretende utilizar.
– Lembre-se de criar a caixa postal que irá ser utilizada para a autenticação via Painel do Cliente.
Eventualmente, sua aplicação pode utilizar o Charset UTF-8. Nestes casos, o uso do exemplo acima poderá ocasionar o envio de mensagens com caracteres estranhos. Se isto ocorrer, sugerimos que você adapte a utilização do script conforme os passos abaixo. Se ainda assim persistir este comportamento, recomendamos fortemente que você verifique se a programação da aplicação em si não possui outras áreas de controle de Charset.
1 – Salve os arquivos formulario.html e enviar.asp no formato UTF-8, para isso, você pode utilizar o Bloco de Notas, vá em “Salvar Como” e defina o item “Codificação” como UTF-8;
2 – Substitua a linha abaixo que define o charset no arquivo formulario.html
De:
< meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″>
Para:
< meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>
3 – Substitua a linha abaixo que define o charset no arquivo enviar.asp
De:
cdoMessage.BodyPart.Charset = “iso-8859-1”
Para:
cdoMessage.BodyPart.Charset = “utf-8”