Blog ComercialWeb - São Paulo - SP
E-mail: [email protected]
Atualizado: 07/10/2025

Como enviar e-mail com ASP Clássico (CDO.Message + SMTP)

Enviar e-mail com ASP Clássico

Com CDO.Message é possível enviar e-mails no ASP Clássico usando um servidor SMTP autenticado, com suporte a SSL/TLS, anexos e definição de charset. Abaixo, um exemplo básico e boas práticas.

Envio básico com autenticação e STARTTLS

<%
' Ajuste as variáveis de acordo com seu provedor SMTP
Dim smtp, cfg, f
Set smtp = Server.CreateObject("CDO.Message")
Set cfg = Server.CreateObject("CDO.Configuration")
Set f = cfg.Fields
f.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ' cdoSendUsingPort
f.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.seudominio.com"
f.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
f.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True ' STARTTLS
f.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")= 1 ' básica
f.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "usuario"
f.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "senha"
f.Update
Set smtp.Configuration = cfg
smtp.From = "[email protected]"
smtp.To = "[email protected]"
smtp.Subject = "Teste de e-mail"
smtp.HTMLBody = "<strong>Olá</strong>, mensagem de teste em HTML."
smtp.BodyPart.Charset = "UTF-8"
On Error Resume Next
smtp.Send
If Err.Number <> 0 Then Response.Write("Erro ao enviar: " & Err.Description) Else Response.Write("OK")
On Error GoTo 0
Set f = Nothing: Set cfg = Nothing: Set smtp = Nothing
%>

Alguns provedores exigem porta 465 com SSL. Nesse caso, ajuste smtpserverport para 465 e mantenha smtpusessl = True.

Com anexos e texto alternativo

<%
Dim msg: Set msg = Server.CreateObject("CDO.Message")
' ... reutilize a configuração (cfg) do exemplo anterior ...
msg.From = "[email protected]"
msg.To = "[email protected]"
msg.Subject = "Relatório com anexo"
msg.HTMLBody = "<p>Segue relatório em anexo.</p>"
msg.TextBody = "Segue relatório em anexo."
msg.AddAttachment Server.MapPath("/caminho/arquivo.pdf")
On Error Resume Next: msg.Send: If Err.Number <> 0 Then Response.Write Err.Description: On Error GoTo 0
Set msg = Nothing %>

Valide a extensão e o tamanho do anexo. Garanta permissões de leitura no diretório e caminhos corretos via Server.MapPath.

Perguntas frequentes

Qual porta usar: 587 ou 465?
587 (STARTTLS) é a mais comum. Alguns provedores usam 465 (SSL). Consulte sua hospedagem.
Minha hospedagem bloqueia portas de saída, o que fazer?
Use o SMTP do próprio provedor, ou serviços externos compatíveis com a porta liberada (ex.: 587). Em último caso, suporte da hospedagem.
Como evitar que caia no spam?
Configure SPF, DKIM e DMARC no domínio e evite arquivos executáveis como anexos. Mantenha conteúdos claros e reputação do remetente.
Fonte: Redação ComercialWeb


Mais Lidos

Ferramentas úteis

Precisa gerar senhas, validar CPF/CNPJ ou criar QR Code? Acesse nossos Geradores e Validadores Online.