Código fuente de 'Correo Cdonts 2.asp'

<html>
<head>
<title>Correo Cdonts 2 - Códigos asp, programacion asp, descargas asp, rutinas asp</title>
</head>

<body style="font-family: Arial; font-size: 9pt"><H3 align="center">Correo Cdonts 2</H3>
Ejemplo de configuración de correo con CDONTS (necesitas tenerlo instalado para que funcione, muchos servidores web lo proporcionan).
<b><br>
<br>
Atención:</b> esta función está deshabilitada para enviar el envío masivo de 
correos desde este formulario. Mejor copia el código en tu página y envía desde 
allí.

<%
' Email object
Dim objCDONTS                 
' From persons' real name
Dim strFromName               
' Email addresses
Dim strFromEmail, strToEmail  
' Mensaje
Dim strSubject, strBody       
' La URL de esta página
Dim strThisPage               
' La Url de la página referida
Dim strReferringPage          
' Booleano que indica parámetros válidos
Dim bValidInput               

' Retrieve this page name and referring page name
strThisPage      = Request.ServerVariables("SCRIPT_NAME")
strReferringPage = Request.ServerVariables("HTTP_REFERER")

' Debugging lines:
'Response.Write strThisPage & "<BR>" & vbCrLf
'Response.Write strReferringPage & "<BR>" & vbCrLf

' Read in and set the initial values of our message parameters
strFromName  = Trim(Request.Form("txtFromName"))
strFromEmail = Trim(Request.Form("txtFromEmail"))
strToEmail   = Trim(Request.Form("txtToEmail"))
strSubject   = "Check out ASP 101!"
strBody      = Trim(Request.Form("txtMessage"))


' I set the body message to a message that referenced the page the
' user arrived from.  This makes it great if you place a link to it
' from your different articles, but can be weird if people link in
' from other web sites.
If strBody = "" Then
	If strReferringPage = "" Or InStr(1, strReferringPage, "www.asp101.com", 1) = 0 Then
		strBody = ""
		strBody = strBody & "He encontrado una web que creo que te gustará ver:" & vbCrLf
		strBody = strBody & vbCrLf
		strBody = strBody & "   http://www.astalaweb.com" & vbCrLf
	Else
		strBody = ""
		strBody = strBody & "He encontrado un artículo que creo que te gustará ver:" & vbCrLf
		strBody = strBody & vbCrLf
		strBody = strBody & "   " & strReferringPage & vbCrLf
	End If
End If
	
' Quick validation just to make sure our parameters are somewhat valid
bValidInput = True
bValidInput = bValidInput And strFromName <> ""
bValidInput = bValidInput And IsValidEmail(strFromEmail)
bValidInput = bValidInput And IsValidEmail(strToEmail)

' If valid send email and show thanks, o/w show form
If bValidInput Then
	' Set up our email object and send the message
	Set objCDONTS = Server.CreateObject("CDONTS.NewMail")
	objCDONTS.From    = strFromName & " <" & strFromEmail & ">"
	objCDONTS.To      = strToEmail
	objCDONTS.Subject = strSubject
	objCDONTS.Body    = strBody
	

	
' Atención borrar el apóstrofe de la línea de abajo para que el correo pueda ser enviado
'	objCDONTS.Send
	Set objCDONTS = Nothing
	


	
'Si quisiéramos controlar más nuestro mail, sabed que existen estas otras propiedades: 
'oMail.Cc = "yo@misitio.com" envía una copia (carbon copy) a la dirección que especifiquemos. 
'oMail.Bcc = "el@susitio.com" envía una copia "ciega" (blind carbon copy) que no aparece en la lista de destinatarios del mensaje. 
'oMail.Importance = 1 envía el mail con urgencia (0=Baja, 1=Normal, 2=Alta). 
'oMail.AttachFile "c:\MisDocumentos\archivo.doc", "Hoja de Gastos" adjunta el fichero "archivo.doc" con el nombre "Hoja de Gastos". 


	' Mensaje de gracias
	ShowThanksMsg
Else
	If "http://" & Request.ServerVariables("HTTP_HOST") & strThisPage = strReferringPage Then
		Response.Write "There's been an error.  Please check your entries:" & "<BR>" & vbCrLf
	End If
	' Show our information retrieval form
	ShowReferralForm strThisPage, strFromName, strFromEmail, strToEmail, strBody
End If
' End of page logic... subs and functions follow! 
%>


<%
' Subroutines and Functions that encapsulate some functionality
' and make the above code easier to write... and read.

' Comprueba la validez sintáctica del correo

' A quick email syntax checker.  It's not perfect,
' but it's quick and easy and will catch most of
' the bad addresses than people type in.


Function IsValidEmail(strEmail)
	Dim bIsValid
	bIsValid = True
	
	If Len(strEmail) < 5 Then
		bIsValid = False
	Else
		If Instr(1, strEmail, " ") <> 0 Then
			bIsValid = False
		Else
			If InStr(1, strEmail, "@", 1) < 2 Then
				bIsValid = False
			Else
				If InStrRev(strEmail, ".") < InStr(1, strEmail, "@", 1) + 2 Then
					bIsValid = False
				End If
			End If
		End If
	End If

	IsValidEmail = bIsValid
End Function

' Formulario de entrada de datos
' I made this a function just to get it out of the
' logic and make it easier to read.  It just shows the
' form that asks for the input

Sub ShowReferralForm(strPageName, strFromName, strFromEmail, strToEmail, strBody)
	' I use script_name so users can rename this script witout having to change the code.
	%>
	<FORM ACTION="<%= strPageName %>" METHOD="post" name=frmReferral>
	<TABLE BORDER="0" style="font-family: Arial; font-size: 9pt">
	<TR>
		<TD VALIGN="top" ALIGN="right"><strong>Tu nombre:</strong></TD>
		<TD><INPUT TYPE="text" NAME="txtFromName" VALUE="<%= strFromName %>" SIZE="30"></TD>
	</TR>
	<TR>
		<TD VALIGN="top" ALIGN="right"><STRONG>Tu correo:</STRONG></TD>
		<TD><INPUT TYPE="text" NAME="txtFromEmail" VALUE="<%= strFromEmail %>" SIZE="30"></TD>
	</TR>
	<TR>
		<TD VALIGN="top" ALIGN="right"><strong>Correo amigo:</strong></TD>
		<TD><INPUT TYPE="text" NAME="txtToEmail" VALUE="<%= strToEmail %>" SIZE="30"></TD>
	</TR>
	<TR>
		<TD VALIGN="top" ALIGN="right"><STRONG>Mensaje:</STRONG></TD>
		<TD><TEXTAREA NAME="txtMessage" COLS="50" ROWS="5" WRAP="virtual" READONLY><%= strBody %></TEXTAREA>
	</TR>
	<TR>
		<TD></TD>
		<TD><INPUT TYPE="reset" VALUE="Borrar formulario" name=rstReferral>&nbsp;&nbsp;<INPUT TYPE="submit" VALUE="Enviar correo" name=subReferral></TD>
	</TR>
	</TABLE>
	</FORM>
	<%
	'<P>The Message to be sent:</P>
	'<P><B>Subject:</B> < %= strSubject % ></P>
	'<P><B>Body:</B> < %= strBody % ></P>
End Sub

' This just shows our thank you message... probably didn't need to
' be a function, but since I made the form one I figured I'd do this
' for consistency.
Sub ShowThanksMsg()
	%>
	<P>Tu mensaje ha sido enviado.</P>
	<%
End Sub
%>
</body>
</html>