Envío de formulario por email usando cdonts

He querido aprender como enviar un formulario por email usando asp, conseguí este código que me parece sencillo, usa cdonts, anteriormente probé con aspmail pero me dio problemas porque mis pruebas las hago en una pc win xp pro pero el aspmail me pide que le especifique el dns del server smtp, y esa pc no es un server smtp, pues bien, al probar el código que te pongo abajo, me tira el error:
Objeto Server error 'ASP 0177 : 800401f3'
Error en Server. CreateObject
/segamerica/formemail.asp, line 49
Cadena clase no válida
Que es justamente la linea donde defino el objeto
set oMail=Server.CreateObject("CDONTS.NewMail")
¿Me podes ayudar? A continuación te envío el código completo de la página.
Gracias
<CENTER><H2>Enviar formulario por e-mail</H2></CENTER>
<%
Dim oMail, sDestino, sRemite, sBody, accion
sDestino=Trim(CStr(Request.Form("Para")))
sRemite=Trim(CStr(Request.Form("De")))
sBody=CStr(Request.Form("Cuerpo"))
' Si alguno de los campos está vacío es que no han enviado el formulario
if (sDestino = "" or sRemite = "") then
Formulario
else
MandarMail
end if
'========================================================================================
Sub Formulario
%>
<TABLE BORDER="1" STYLE="background-color: lightgrey; color: black" WIDTH="400" ALIGN="center">
<FORM NAME="Email" ACTION="formemail.asp" METHOD="post">
<TR>
<TD COLSPAN="2">Introduce un email para enviar un mail, y otro para que sea el remitente.
Si quieres, puedes añadir un comentario.</TD>
<TR>
<TD><B>Para:</B></TD>
<TD><INPUT TYPE="text" NAME="Para"></TD>
<TR>
<TD><B>De:</B></TD>
<TD><INPUT TYPE="text" NAME="De"></TD>
<TR>
<TD><B>Comentario:</B></TD>
<TD><TEXTAREA NAME="Cuerpo" WRAP="virtual" ROWS="3" COLS="15"></TEXTAREA></TD>
<TR>
<TD COLSPAN="2"><CENTER>
<INPUT TYPE="submit" VALUE="Enviar Email!">
<INPUT TYPE="reset">
</CENTER>
</TD>
</FORM>
</TABLE>
<%
End Sub 'Formulario
'========================================================================================
Sub MandarMail
'Creamos el objeto
set oMail=Server.CreateObject("CDONTS.NewMail")
'Establecemos sus propiedas
oMail.To=sDestino
oMail.From=sRemite
'Esto lo añado yo :-)
sBody=sBody & VbCrLf & VbCrLf & _
"Este es una demostración de cómo enviar correo electrónico desde una página web. "
sBody=sBody & "Cualquier queja, molestia o preocupación, a [email protected]. "
sBody=sBody & "Esta dirección de correo electrónico no queda guardada de ninguna forma. Www.ASPFacil.com"
'Asignamos el cuerpo del mensaje
oMail.Body=sBody
'Y fuera!
oMail.Send
'Sacamos la basura :-)
set oMail=nothing
Response.Write("El correo electrónico ha sido enviado correctamente a <i>"&sDestino&"</i>.")
End Sub 'MandarMail
%>
<!--FIN DEL SCRIPT -->

6 Respuestas

Respuesta
1
http://www.csscript.com/mail.asp
Esta puede ser tu solución. El objeto en lugar de CDONTS de persitMalSender
Respuesta
1
Esto es que el CDONTS no está instalado en la máquina.
http://soloasp.com.ar/vermensaje2.asp?idmensaje=29925&idforo=6
Mira esto que te servirá de ayuda.
Respuesta
1
Ante todo, he de decirte que yo siempre he enviado mails desde ASP con ASPemail (http://www.aspemail.com). Por la linea que me dices que te peta es posible o bien que este objeto no exista en tu servidor ASP o que no este bien instalado. Así bien, si no es por estas razones no se que más decirte, nunca he utilizado CDONTS.
Respuesta
1
Antes de nada te recomiendo que uses ASPEmail,, yo lo utilizo y sin problemas. Lo que dices que te pide el SMTP, no necesitas que tu pc con windows xp sea un SMTP. Tienes que indicarle el SMTP de una de tus cuentas para que el compruebe que el correo que envía (osea el tuyo) coincide. Me explico:
Supongamos que tienes una cuenta de correo que se llama [email protected]. Pues tu SMTP lo más probable es que sea smtp. Tudominio.com. Y la propiedad from del objeto Send deberá poner la dirección de correo [email protected]. Esto se hace porque solo los usuarios dentro de ese dominio pueden enviar mensajes. Entonces lo que secomprueba es que tu SMTP coincida con la cuenta de correo que pones para que te autorice a utilizar el servidor SMTP para enviar el correo. Te pongo un ejemplo:
set msg = Server.CreateOBject( "Persits.MailSender" )
recipient = [email protected] ?aqui la cuenta a donde quieres enviar
msg.Host = "smtp.tudominio.com"
msg.Port = 25
msg.From = "tucuenta@ tudominio.com"
msg.FromName = "Tu nombre" ?elnombre que quieres que aparezca cuando alguien recibe un correo tuyo
msg.AddAddress recipient
msg.AddCC [email protected] ?aqui otra cuenta que recibirá copia del correo, es opcional y vale cualquier dominio y cuenta
msg.Subject = "Envio de correo" ?El asunto del mensaje
msg.Body =?Hola que tal...? ?aquí el cuerpo del mensaje
msg.IsHTML = True ?Lo pones a true si quieres que se envie en formato HTML el correo
msg.Send ?Ejecuta el envio
Esto funciona perfectamente. El CDONTS la verdad da muchos problemas y es una lata.
Respuesta
1
La verdad lamento decirte que Microsoft sacó de sus librerías la .dll del CDONT por lo que se dejaron de enviar email regularmente por esta vía. Y tienes razón en cuanto al ASPMail, si no tienes SMTP no puedes ejecutar el servicio.
Esto se debe a la centralización de servicios, además el CDONT se prestaba para envíos masivos y no tenia la forma de regularse. Microsoft tenía muchas cosas básicas que otros proveedores han mejorado, como dichas librerías, lo cual hace más robusto el envío de mail.
No esta mal lo que hiciste en tu código pero si quieres probar su funcionamiento deberías correrlo en un servidor o un equipo que tenga Windows2000. Sé que existen proveedores de mail (como ASPMail Full) que tienen servicios SMTP incluido. Buscate por internet más información al respecto.
Yo utilizo ASPMail pero en mi caso tengo habilitado un servidor SMTP.
Espero haberte ayudado co tu duda cualquier cosa me avisas y así intercambiamos información.
Saludos,
ME
Respuesta
1
Primero que nada perdón por la demora en la respuesta.
Supongo que ya habrás resuelto esto pero igual te voy a responder
el error que te aparece es porque simplemente no tienes instalado el componente en el servidor
si es un servicio de hostimg debes solicitarlo al proveedor y si es un servidor propio lo que debes hacer es instalar el servicio SMTP
Espero haber ayudado
Pablo A. Barrientos
[email protected]
www.cims.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas