Error al enviar Email con CDOSYS

FER
30 de Agosto del 2005
Hola a todos, a ver si alguien me puede ayudar con el problemilla que tengo. La cosa es que estoy probando codigo en asp (estoy empezando en esto) para el envio de emails con CDOSYS ya que el servidor donde trabajo tiene el IIS v6.0 y por lo tanto no soporta CDONT (si no es asi corregirme). La cosa es que con CDOSYS tambien se supone que es muy sencillo pero no logro enviar nada. Lo mejor es que ponga un trocillo de codigo de ejemplo y luego pregunto sobre el:

<%
Set objNewMail = Server.CreateObject("CDO.Message")
Set Config = Server.createObject ("CDO.Configuration")
With Config.fields
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "NombreServidor"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.update
End With
objNewMail.Configuration = Config
objNewMail.Subject = "Prueba de Envio"
objNewMail.From = "[email protected]"
objNewMail.To = "[email protected]"
strBody = "ESTO ES UNA PRUEBA!!"
objNewMail.TextBody = strBody
objNewMail.Send()
Set objNewMail = Nothing
Response.write("EMAIL ENVIADO CORRECTAMENTE!!")
%>

Mis preguntas son:

Como se trata de una web interna, la web estaria en un equipo servidor de la red, que corre el IIS y un servidor SMTP, por tanto en la directiva de configuracion:
http://schemas.microsoft.com/cdo/configuration/smtpserver Habria que poner el nombre del equipo (o su ip) del equipo servidor que comento no?
Tambien he probado a poner uno externo, por ejemplo smtp.terra.es aadiendole las directivas de password y nombre de usuario pero nada, no me envia nada. Alguien sabe por que? Hay que donfigurar algo en el servidor SMTP del equipo en red? por favor, me estoy volviendo loco, jeje si alguien puede ayudarme se lo agradecere.
Un saludo.

llauraff
30 de Agosto del 2005
A mi me ocurre exactamente lo mismo y estoy desesperada as que entiendo como te puedes sentir, yo tampoco soy capaz de enviar nada, a ver si cuando lo consigas me puedes avisar ([email protected]) te lo agradecera en el alma

Guillermo Tapia
30 de Agosto del 2005
Hasta hace unos pocos minutos me paso lo mismo, pero afortunadamente encontre la solucin, a continuacin les pongo un ejemplo, yo estoy programando en un servidor Windows 2000, tengo el IIS 5.0 y el SMTP configurado por default desde la instalacin.

<%
DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo

invioA = "[email protected]" 'Direccion de correo con que se esta accesando al SMTP.

invioDa = "[email protected]" 'Direccion de correo a enviar el mail.

'------------final de las modificaciones necesarias------------------

nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")


'* creo los objetos cdosys en el servidor y los gestiono
DIM iMsg, Flds, iConf

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.tuodominio.ext" 'Aqui se pone el nombre del dominio smtp del servidor de correo.
'Cabe mencionar que se debe tener uno o se debe usar un smtp que tenga el software para enviar el correo
'el windows 2000 server y xp profesional no traen un servidor de correo solo te permiten hacer la salida
'a un servidor de correo como pudiere ser "smtp.prodigy.net.mx", a menos que en su mismo servidor de trabajo
'tengan uno pueden poner su nombre.
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoBasic 'En los siguientes campos se indica que la autenticacin sera por ID y clave
Flds(cdoSendUserName) = "[email protected]" 'Aqui se debe poner el ID de usuario con que se accesa al servidor de correo
'previamente asignado en el campo del SMTP.
Flds(cdoSendPassword) = "TuaPassword" 'Aqui por supuesto va la clave de acceso del ID
'Es preferible que se use de esta manera a menos de que su servidor de correo no requiera
'autenticacin por medio de ID y contrasea, en este caso s se usa un servidor por
'ejemplo smtp.prodigy.net.mx (ISP de prodigy), se debe poner su direccin completa de correo
'y su clave para revisar su correo.
Flds.Update

With iMsg
Set .Configuration = iConf
.To = invioA 'Aqui va una direccin de correo valida por el servidor de correo, de preferencia se usa con la que se acceso.
'en los campos anteriores UserName y Password.
.From = Request.Form("email") 'Aqui se pone la direccin de correo a donde se desea enviar el mail.
'.Sender = invioDa 'Este se usa para enviar el mail a esa direccion es posible que les de problemas a mi no me funciono y lo quite.
.Subject = "Contacto desde el dominio" & nomeDominio
.TextBody = "Siguen los datos introducidos en el mdulo que se encuentra a la pagna" & modulo & " por usuario con direccin IP " & indirizzoIp & " navegador y sistema operativo" & browserSistemaOperativo & vbCrLf & " End"

.Send 'Por fin se envia el mensaje.
End With

Este ejemplo lo saque de un sitio que explicaba las librerias dll a usar para mandar mensajes y lo modifique para que me funcionara por respeto al creador del ejemplo pongo el url http://vademecum.aruba.it/start/contatto/contatto_es.htm
pero tambien agrego que no es tan explicito como uno desearia, ya que me desespere muchisimo al
tratar de hacer que funcionara, eso sin mencionar todos los ejemplos que probe de otros sitios y que ninguno explica el como hacerlo, ya que como lo mencione con anterioridad el Windows 2000 Server y el Windows XP profesional (que solo se puede tener el CDOSYS si se instala el outlook de office) permiten la salida por el puerto 25 pero no estan habilitados para poder enviar el correo por si solos, requieren del software de servidor de correo, en este caso logre que funcionara direccionando el "Flds(cdoSMTPServer)" al nombre del servidor de correos de la empresa en que trabajo y asi fue como logre que se pudieran enviar mails con el CDOSYS.

Por otra parte debo recordar que no cambie la configuracion de mi SMTP del IIS, deje la que me puso
por default, en caso de que no les funcione el ejemplo, les recomiendo que revisen la configuracin del SMTP de su IIS (entrar al IIS y expandir para ver la seccion servidor virtual SMTP)en este caso algo muy comun es que en la configuracion de su SMTP en la pestaa de "entrega", en el boton "advanzada", el nombre del dominio no conincida con el nombre de su maquina (debe ser el mismo nombre), y en el "host inteligente" se agregara el nombre del servidor que asignen en la variable "Flds(cdoSMTPServer)" del ejemplo anterior.

Espero les sea de utilidad ya que por fin logre que se enviaran mails y tambien espero que mi explicacion logre que comprendan como se debe usar el CDOSYS.

TecnoHill Systems