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.

Preguntas similare

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.


Respuesta Responder a este mensaje
#2 Damocles
04/06/2004 - 14:29 | Informe spam
Muchas gracias, asi si me envia e-mails, pero mas que nada por curiosidad,
que fallaba en el codigo que utilizaba en otro objeto para enviar el e-mail
(hombre a mi me da = utilizar uno u otro) [Set Mail Server.CreateObject("Persits.MailSender")] y [set
oMail=Server.CreateObject("CDONTS.NewMail")].

Saludos.
Por cierto Franco Figún sabes programar consultas con visual basic.net sobre
bases de datos Access para pocket pc?.

"Franco Figún" escribió en el mensaje
news:
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.
>
>


Respuesta Responder a este mensaje
#3 Damocles
04/06/2004 - 14:29 | Informe spam
Muchas gracias, asi si me envia e-mails, pero mas que nada por curiosidad,
que fallaba en el codigo que utilizaba en otro objeto para enviar el e-mail
(hombre a mi me da = utilizar uno u otro) [Set Mail Server.CreateObject("Persits.MailSender")] y [set
oMail=Server.CreateObject("CDONTS.NewMail")].

Saludos.
Por cierto Franco Figún sabes programar consultas con visual basic.net sobre
bases de datos Access para pocket pc?.

"Franco Figún" escribió en el mensaje
news:
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.
>
>


Respuesta Responder a este mensaje
#4 antonio periago
07/06/2004 - 19:50 | Informe spam
la diferencia es que se usan objetos diferentes. el MailSender de Persits
corresponde al ASPEmail (www.aspemail.com) y el NewMail de CDONTS
corresponde a una librería que viene con el sistema operativo (Collaboration
Data Objects for Microsoft Windows NT Server).


HOWTO: Use CDONTS to Collect and Mail Information From a User
http://support.microsoft.com/defaul...-US;186204

un saludo,
antonio periago



"Damocles" escribió en el mensaje
news:uNNQr%
Muchas gracias, asi si me envia e-mails, pero mas que nada por curiosidad,
que fallaba en el codigo que utilizaba en otro objeto para enviar el


e-mail
(hombre a mi me da = utilizar uno u otro) [Set Mail > Server.CreateObject("Persits.MailSender")] y [set
oMail=Server.CreateObject("CDONTS.NewMail")].

Saludos.
Por cierto Franco Figún sabes programar consultas con visual basic.net


sobre
bases de datos Access para pocket pc?.

"Franco Figún" escribió en el mensaje
news:
> 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.
> >
> >
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida