Publicentral.com - alta en buscadores, registro buscadores, promocionaPromocion en buscadores y negocios online
Mostrando Codigo - Asp

Envio de emails con CDO - con Autentificacion

El famoso cdonts ha sido modificado por CDO en los servidores Windows 2000 y Windows XP aqui mostramos un ejemplo de envio de email desde un servidor remoto pero en este caso con autentificacion de usuario.
Visitas: 17949 - 18/02/2004 3:50:42
CODIGO SIN DEMOSTRACIONCODIGO NO EJECUTABLENO CONTIENE ARCHIVO DESCARGABLE
EXPLICACION

Con este tipo de envio CDO dependemos de Microsoft, para nuestro envio de emails, aunque es necesario que tengamos un Servidor SMTP de Emails instalado en el servidor, no funcionará si nuestro servidor no soporta SMTP.

Las Primaras lineas no deben de ser modificadas si no se sabe exactamente lo que hacemos.

Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
Const cdoBasic = 1
Const cdoNTLM = 2


Las siguientes lineas refieren a la configuración del mensaje que se va a enviar.


mensaje.Subject = Titulo del mensaje
mensaje.Sender = Desde donde se envia el mensaje
mensaje.To = A donde va dirigido el mensaje
mensaje.TextBody = Cuerpo del mensaje

Despues de estas lineas no es recomendable modificar nada mas, exepto:

"mail.tu_servidor.com" | Donde se indicará tu servidor de email.
"Usuario" | Donde indicaremos el nombre de usuario de tu Servidor de Email.
"Clave" | Debemos indicar el Password o Clave de Usuario de Tu servidor de Email.

El resto como antes indicamos no seria conveniente modificarlo.

CODIGO
Codigo probado en Internet Explorer 4++Codigo probado en Mozilla FirefoxCodigo probado en NetscapeCodigo probado en OperaCodigo probado en Safari


<% 'Codigo ofrecido por Tutores.org %>
<%
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
Const cdoBasic = 1
Const cdoNTLM = 2
Set mensaje = CreateObject("CDO.Message")
mensaje.Subject = "Ejemplo de Cdo con autentificacion de usuario"
mensaje.Sender = "yo@mi_domino.com"
mensaje.To = "tu@tu_dominio.com"
mensaje.TextBody = "Este es un ejemplo de texto"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.tu_servidor.com"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/authenticate") = cdoBasic
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "USUARIO"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Clave"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
mensaje.Configuration.Fields.Update
mensaje.Send
%>

ENLACE AL CODIGO
Si quieres enlazar desde tu pagina a este codigo
<!-- Inicio enlace Tutores.org -->
<a title="Tutores.org - Envio de emails con CDO - con Autentificacion" href="http://www.tutores.org/codigo/978/" target="_blank">Envio de emails con CDO - con Autentificacion</a>
<!-- Final enlace Tutores.org -->
COMENTARIOS
agustín martín
He probado el código, pero tras avanzar un poco la barra de proceso, se me queda el navegador, sin hacer nada, ni dá ningún error.

Por favor, indicadme qué puede ocurrir.

Gracias y un saludo
Tutores.org 19/04/2003
Hola agustín
hemos añadido varias instrucciones sobre la configuración del Script.
A ver si de esta forma consigues que funcione.
saludos
anominod
[*CODE*]<!-- El codigo ha sido proporcionado: http://www.tutores.org -->
<a href="http://www.tutores.org">Codigo ofrecido por Tutores.org</a>

<%
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
Const cdoBasic = 1
Const cdoNTLM = 2
Set mensaje = CreateObject("CDO.Message")
mensaje.Subject = "Ejemplo de Cdo con autentificacion de usuario"
mensaje.Sender = "yo@mi_domino.com"
mensaje.To = "tu@tu_dominio.com"
mensaje.TextBody = "Este es un ejemplo de texto"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.tu_servidor.com"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/authenticate") = cdoBasic
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "USUARIO"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Clave"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
mensaje.Configuration.Fields.Update
mensaje.Send
%>[*/CODE*]
trevize
Y si se quiere adjuntar un archivo?
He probado las dos variantes:

mensaje.AddAttachment(wScript.Arguments(0))
y da el siguiente error:
CDO.Message.1: The specified protocol is unknown.

Dim attachment As New MailAttachment(Server.MapPath("ok.txt"))
mensaje.Attachments.Add(attachment)
y
tampoco funciona.
Gracias por vuestro tiempo.
Tutores.org 19/04/2003
Hola seria algo asi como
mensaje.AddAttachment "c: uarchivo.txt"
saludos
RAlonso
'OJO CON LOS ANTIVIRUS QUE PUEDE HACER QUE NO FUNCIONE, SOBRE TODO EL MCAFFE: Ver protección de acceso - Protección estandar antivirus - procesos que se excluyen: añadir el programa.exe y en diseño si es vb6 pues vb6.exe

'este es el código que funciona (ojo... es importante tener claro que es preciso un servidor SMTP en la intranet, sino, deberas usar MAPI)

Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
------------------


Dim myMail
Set myMail = CreateObject("CDO.message")

'27/6/2007 Cambio de servidor: Error -2147220975(80040211) Servidor not available
Dim cdoConfig
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item(cdoSendUsingMethod) = 2 'cdoSendUsingPort=2
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPServer) = "correo.mismtp.es"
.Item(cdoSendUserName) = "envioauto@tralari.es"
.Item(cdoSendPassword) = "autoenvio"
.Update
End With
Set myMail.Configuration = cdoConfig


myMail.From = "perico@tralari.es"
myMail.To = "perica@tralari.es"

myMail.Subject = "Prueba desde un POGAMA"
myMail.textBody = "Prueba desde EL SUPE-POGAMA"


myMail.Send
Set myMail = Nothing
MsgBox "Enviado"
nivola69 12-06-2008 09:57:57
Necesito ayuda!!!
tengo contratado un hosting con la empresa Godaddy americana y tambien el correo de mi dominio con ellos, he provado mil codigos con ellos y mis servidores como yahoo, hotmail, gmail... y no me funciona el codigo siempre me da este error:

CDO.Message.1 error '80040213'

The transport failed to connect to the server.

/mail.asp, line 32

he probado vuestro codigo que me parec perfecto:

[*CODE*]<!-- El codigo ha sido proporcionado: http://www.tutores.org -->
<a href="http://www.tutores.org">Codigo ofrecido por Tutores.org</a>

<%
Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
Const cdoBasic = 1
Const cdoNTLM = 2
Set mensaje = CreateObject("CDO.Message")
mensaje.Subject = "Ejemplo de Cdo con autentificacion de usuario"
mensaje.Sender = "info@pielnatur.com"
mensaje.To = "nivola69@hotmail.com"
mensaje.TextBody = "Este es un ejemplo de texto"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpout.secureserver.net"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/authenticate") = cdoBasic
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "info@pielnatur.com"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "******"
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
mensaje.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
mensaje.Configuration.Fields.Update
mensaje.Send
%>[*/CODE*]

todos estos parametros en el outlook me funcionan, no enteiendo por que no me va el código, es muy urgente necesito lanzar una web y por todo esto no puedo aun.
Gracias,
Arian

daniel 23/10/2003 10.47.59
Comprendo tu super estres,

Este código te funcionará, ya que es de una web de godaddy.

______________




<%
Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).

Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Presupuesto desde la web"
objMessage.From = """Super Empresa"" <info@laempresa.com>"
'objMessage.To = "info@laempresa.com"
objMessage.To = "danone_chocolate@hotmail.com"
objMessage.TextBody = "mensajito"

'==This section provides the configuration information for the remote SMTP server.

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.loquesea.com"

'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic

'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "nombredeusuarioaquidelacuentaemail"

'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "contraseniaaquidelacuentaemail"

'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

objMessage.Configuration.Fields.Update

'==End remote SMTP server configuration section==

objMessage.Send


'Response.Redirect ("enviado.asp")
%>



_______________
Gustavo 09-02-2008 18:33:29
es necesario poner los campos:

http://schemas.microsoft.com/cdo/configuration

cuales son los valores que se asumen por default?

gracias
Jorge Loyola
Hola, tengo una pregunta es posible que en el modo de autentificacion la aplicacion asuma las credenciales del equipo y asi evitar el solicitar el usuario y contraseña.
Saludos
cristian
No me funciona, existe como emular esta configuracion
"http://schemas.microsoft.com/cdo/configuration"
ya que en el servidor donde configure en el envio de correos a travez de CDO no tiene internet.

saludos
INSERTAR COMENTARIO

Usuario:
Email:
Comentario:
Codigo Seguridad


Antes de enviar un comentario...
Todos los comentarios son revisados personalmente
Todo comentario que no haga relacion al codigo mostrado en esta pagina sera eliminado

Usuarios registrados tienen preferencia en recibir respuestas de ayuda!!
Ademas de poder insertar Imagenes,Enlaces y otras propiedades del editor.
Por favor, insertar los comentarios descriptivos.