Enviar E-mails con ASP mediante servidor SMTP

03/06/2004 - 23:14 por Damocles | Informe spam
Hola;
Necesito enviar e-mails desde una pagina asp utilizando el servidor smtp del
mismo equipo. Hasta el momento utilizo este codigo que encontre en una
pagina, pero me da error al crear el objeto, (que no indica nada en la web
de que el objeto no lo traiga windows xp de por si, version profesional
SP1).
El codigo es el siguiente:
<CENTER><H2>Enviar formulario por e-mail</H2></CENTER>
<%

'Plantilla ASP por Carlos de la Orden Dijs
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")
'al crear este objeto me da error.^

'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
contacto@aspfacil.com. "
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 -->

Este es el codigo tal cual, seguramente fallara en alguna tonteria.
de todas formas el servidor smtp parece estar bien configurado, ya que puedo
enviar e-mails utilizando telnet sin problemas.

Saludos.
 

Leer las respuestas

#1 Franco Figún
03/06/2004 - 23:55 | Informe spam
Hola
1) Tenes permisos de ejecucion sobre la librería CDO, en el servidor?
2) El sitio tiene permisos de SCRIPT, IUSR_tuserver sobre el IIS y sobre la
carpeta dentro de INETPUB/WWWROOT?
3) Tu servidor de SMTP, por casualidad, no requerira autentifiacion?

Fijate los 3 puntos de arriba, y luego prueba este simple codigo:

<%
Set Mail = Server.CreateObject("Persits.MailSender")
'Mail.Username = "user"
'Mail.Password = "pass"
Mail.Host = "smtp.dominio.com.ar" ' Specify a valid SMTP server
Mail.From = "" ' Specify sender's address
Mail.FromName = "Nombre" ' Specify sender's name

Mail.AddAddress ""
Mail.AddReplyTo ""

Mail.Subject = "Subject"
Mail.Body = "Cuerpo del mensaje

'On Error Resume Next
Mail.Send
If Err <> 0 Then
Response.Write "An error occurred: " & Err.Description
Response.Write "An error occurred: " & Err.number
End If
%>

FF
www.francofigun.com.ar
www.microsofties.com.ar
MSN:
UIN: 314408886
Yahoo MSN:

"Damocles" wrote in message
news:uxh9D$
Hola;
Necesito enviar e-mails desde una pagina asp utilizando el servidor smtp


del
mismo equipo. Hasta el momento utilizo este codigo que encontre en una
pagina, pero me da error al crear el objeto, (que no indica nada en la web
de que el objeto no lo traiga windows xp de por si, version profesional
SP1).
El codigo es el siguiente:
<CENTER><H2>Enviar formulario por e-mail</H2></CENTER>
<%

'Plantilla ASP por Carlos de la Orden Dijs
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")
'al crear este objeto me da error.^

'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
"
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 -->

Este es el codigo tal cual, seguramente fallara en alguna tonteria.
de todas formas el servidor smtp parece estar bien configurado, ya que


puedo
enviar e-mails utilizando telnet sin problemas.

Saludos.


Preguntas similares