Publicentral.com - promocion,paginas,web,tutores,publicentralPromocion de paginas webs
Mostrando Codigo - Asp
Code

Asp - Envio de emails con CDO - con Autentificacion

Códigos Asp

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: 50,194 - 18/02/2004 3:50:42
CODIGO SIN DEMOSTRACIONNO CONTIENE ARCHIVO DESCARGABLEComentario
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 ChromeCodigo probado en Mozilla FirefoxCodigo probado en Internet Explorer 7+Codigo probado en OperaCodigo probado en Safari


<% 'Codigo ofrecido por Tutores.org %>

  1. <%
  2. Const cdoSendUsingPickup = 1
  3. Const cdoSendUsingPort = 2
  4. Const cdoAnonymous = 0
  5. Const cdoBasic = 1
  6. Const cdoNTLM = 2
  7. Set mensaje = CreateObject("CDO.Message")
  8. mensaje.Subject = "Ejemplo de Cdo con autentificacion de usuario"
  9. mensaje.Sender = "yo@mi_domino.com"
  10. mensaje.To = "tu@tu_dominio.com"
  11. mensaje.TextBody = "Este es un ejemplo de texto"
  12. mensaje.Configuration.Fields.Item _
  13. ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  14. mensaje.Configuration.Fields.Item _
  15. ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.tu_servidor.com"
  16. mensaje.Configuration.Fields.Item _
  17. ("http://schemas.microsoft.com/cdo/configuration/authenticate") = cdoBasic
  18. mensaje.Configuration.Fields.Item _
  19. ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "USUARIO"
  20. mensaje.Configuration.Fields.Item _
  21. ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Clave"
  22. mensaje.Configuration.Fields.Item _
  23. ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  24. mensaje.Configuration.Fields.Item _
  25. ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
  26. mensaje.Configuration.Fields.Item _
  27. ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
  28. mensaje.Configuration.Fields.Update
  29. mensaje.Send
  30. %>



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
Comentario usuario
agustín martín
5 5
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
Comentario usuario
19/04/2003
5 5
Hola agustín
hemos añadido varias instrucciones sobre la configuración del Script.
A ver si de esta forma consigues que funcione.
saludos
Comentario usuario
anominod
1 5
[*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*]
Comentario usuario
trevize
3 5
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.
Comentario usuario
19/04/2003
2 5
Hola seria algo asi como
mensaje.AddAttachment "c: uarchivo.txt"
saludos
Comentario usuario
RAlonso
5 5
'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"
Comentario usuario
12-06-2008 09:57:57
4 5
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

Comentario usuario
23/10/2003 10.47.59
3 5
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")
%>



_______________
Comentario usuario
09-02-2008 18:33:29
5 5
es necesario poner los campos:

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

cuales son los valores que se asumen por default?

gracias
Comentario usuario
Jorge Loyola
3 5
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
Comentario usuario
cristian
4 5
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
Comentario usuario
alejandro jaime
5 5
Gracias.
Me volvi recontra pelotudo porque DATTATEC aparentemente me
cambio la manera de reconocer CDO y me dejaron de funcionar los
envios de EMAIL de la pagina (que es SUPER IMPORTANTE).
Los pelotudos de la mesa de ayuda me tiraron unos codigos que tampoco andaban y me la pase probando de todo hasta que me tope con el codigo de TUTORES que anduvo de primera.
Estoy trabajando un feriado porque estaba preocupado por el tema, asi que te debo 1.000.000 de gracias.
Un abrazo
Comentario usuario
ppmug
5 5
No entiendo que debo poner donde en:
mensaje.Sender = "yo@mi_domino.com"
mensaje.To = "tu@tu_dominio.com"
Comentario usuario
27-05-2014 17:11:45
2 5
buenas tardes quien me puede ayudar el codigo en mi casa corre perfecto pero en la empresa me error de transporte de conexion al servidor ya que no soy el administrador de la cuenta, ya supuestamente le dieron acceso a un buzon generico pero nose como declararlo ya que no tengo clave del buzon.

Sub enviar_mail()
'Defino las variables como objetos
Dim email As Object
Set email = CreateObject("CDO.Message")
' Set mailconfig = CreateObject("CDO.Configuration")
' Set mfield = mailconfig.Fields
'Configuramos el objeto CDO mediante la dirección del servidor de conf y la declaración siguiente
'También autenticamos el SMTP server, en este caso el de gmail
email.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
email.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusi ng") = 2
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "465"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthentic ate") = 1
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontim eout") = 10
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "dirección de correo"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpasswor d") = "clave"
email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl" ) = 1
'sin la configuración anterior no funcionará el código
'completo los campos necesarios del e-mail
'With email
email.To = "persona a quien se envia"
email.From = "quien envia"
email.Subject = "Prueba"
email.TextBody = "Señores esto es una prueba"
email.AddAttachment ("archivo que se anexa")
email.Configuration.Fields.Update
'con este metodo no podemos visualizar el mail, si quisiéramos podríamos hacerlo mediante un formulario
email.Send
'End With
'desvinculo la variable de los objetos
Set email = Nothing
MsgBox "Mail enviado "
End Sub


por favor urgente ayudenme
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.