<%@ LANGUAGE="VBSCRIPT" %>
<% Option Explicit %>

<script RUNAT="Server" LANGUAGE="VBScript">

Function MailIt(sFrom,sTo,sSub,sBody)

	On Error Resume Next	'prevent the code from halting on an error
	dim oMail

	MailIt=false
	Set oMail = Server.CreateObject("CDONTS.Newmail")
	oMail.From	  = sFrom
	oMail.To	  = sTo
	oMail.Subject 	  = sSub
	oMail.Body	  = sBody
	oMail.Send

	If Err.Number <> 0 then 	
		response.write "Error1 Found:" & Err.Number & " " & Err.Description
	end if

	Set oMail = nothing

	If Err.Number = 0 then 	
		MailIt = true
	Else
		response.write "Error Found:" & Err.Number & " " & Err.Description
	End If
	
End Function 

Function Cr2br(sIn)
	Dim sLen
	Dim iCount
	Dim iPos
	Dim sCr
	Dim sLf

	sCr = chr(13)
	sLf = chr(10)

	sLen = len(sIn)
	Cr2br = ""
	for iPos = 1 to sLen
		if (mid(sIn,iPos,1) = sCr) then
			Cr2br=Cr2br & "<br>"
			iPos=iPos+1			
		else
			Cr2br=Cr2br & mid(sIn,iPos,1)
		end If
	next

End Function

</script>

<%
	Dim i, j, br, lf, found
	Dim iByteCount, sData, sTemp, bResponse, sEnd
	Dim sTo, sFrom, sSubject, sBody, bDataOK, sWebBody, sMessage
	Dim sFromField, bFromField, sRedirect, bRedirect, bRedirectIsSecure
	Dim aData, aPermit(), iCount, sLeadIn
	
	br = "<BR>"
	lf = Chr(13) & Chr(10)
	sLeadIn = "login bikila" & lf & "add slowtwitch-news quiet <<" & lf
	sEnd = ">>"

	'Grab data from header in byte forma
	iByteCount = Request.TotalBytes
	sTemp = Request.BinaryRead(iByteCount)
	
	'Convert byte data into string data
	For i = 1 to iByteCount
		sData = sData & Chr(AscB(MidB(sTemp,i,1)))
	Next

	'Replace Query String substitution characters
	sData = Replace(sData, "+", " ")
	sData = Replace(sData, "=", ": ")

	'Put each value into individual array element
	aData = Split(sData, "&", -1, 1)

	'Get count of number of entries
	On Error Resume Next
	i = 0
	iCount = 0
	Do
		If NOT IsEmpty(aData(i)) then
			if Err.Number = 0 then
				iCount = iCount+1
			Else
				Exit Do
			End If
		end If
		i=i+1
	Loop

	'Replace UUEncoding
	For i = 0 to iCount-1
		aData(i) = Replace(aData(i), "%21", Chr(33))	'!
		aData(i) = Replace(aData(i), "%22", Chr(34))	'"
		aData(i) = Replace(aData(i), "%23", Chr(35))	'#
		aData(i) = Replace(aData(i), "%24", Chr(36))	'$
		aData(i) = Replace(aData(i), "%25", Chr(37))	'%
		aData(i) = Replace(aData(i), "%26", Chr(38))	'&
		aData(i) = Replace(aData(i), "%27", Chr(39))	''
		aData(i) = Replace(aData(i), "%28", Chr(40))	'(
		aData(i) = Replace(aData(i), "%29", Chr(41))	')
		aData(i) = Replace(aData(i), "%2A", Chr(42))	'*
		aData(i) = Replace(aData(i), "%2B", Chr(43))	'+
		aData(i) = Replace(aData(i), "%2C", Chr(44))	',
		aData(i) = Replace(aData(i), "%2D", Chr(45))	'-
		aData(i) = Replace(aData(i), "%2E", Chr(46))	'.
		aData(i) = Replace(aData(i), "%2F", Chr(47))	'/
		aData(i) = Replace(aData(i), "%3A", Chr(58))	':
		aData(i) = Replace(aData(i), "%3B", Chr(59))	';
		aData(i) = Replace(aData(i), "%3C", Chr(60))	'<
		aData(i) = Replace(aData(i), "%3D", Chr(61))	'=
		aData(i) = Replace(aData(i), "%3E", Chr(62))	'>
		aData(i) = Replace(aData(i), "%3F", Chr(63))	'?
		aData(i) = Replace(aData(i), "%40", Chr(64))	'@
		aData(i) = Replace(aData(i), "%5B", Chr(91))	'[
		aData(i) = Replace(aData(i), "%5C", Chr(92))	'\
		aData(i) = Replace(aData(i), "%5D", Chr(93))	']
		aData(i) = Replace(aData(i), "%5E", Chr(94))	'^
		aData(i) = Replace(aData(i), "%5F", Chr(95))	'_
		aData(i) = Replace(aData(i), "%60", Chr(96))	''
		aData(i) = Replace(aData(i), "%7B", Chr(123))	'{
		aData(i) = Replace(aData(i), "%7C", Chr(123))	'|
		aData(i) = Replace(aData(i), "%7D", Chr(123))	'}
		aData(i) = Replace(aData(i), "%7E", Chr(123))	'~
		aData(i) = Replace(aData(i), "%0D", Chr(13))	'Carriage Return
		aData(i) = Replace(aData(i), "%0A", Chr(10))	'Line Feed
	Next

	Redim aPermit(iCount)

	For i = 0 to iCount-1
		aPermit(i) = True
		If Left(aData(i),Len("MailTo")) = "MailTo"	Then
			sTo = Mid(aData(i),Len("MailTo")+3)
			aPermit(i) = False
		End If
		If Left(aData(i),Len("MailFromField")) = "MailFromField"	Then
			sFrom = Mid(aData(i),Len("MailFromField")+3)
			aPermit(i) = False
		End If
		If Left(aData(i),Len("MailSubject")) = "MailSubject"	Then
			sSubject = Mid(aData(i),Len("MailSubject")+3)
			aPermit(i) = False
		End If
		If Left(aData(i),Len("MailRedirectSecure")) = "MailRedirectSecure"	Then
			sRedirect = "https://" & Mid(aData(i),Len("MailRedirectSecure")+3)
			bRedirect = True
			aPermit(i) = False
		End If
	Next
	
	'Create Body of Message
	sBody = sLeadIn
	For i = 0 to iCount-1
		If aPermit(i) = True Then
			found = InStr(aData(i), "email")
			If found Then
				found = found + 7
				sBody = sBody & Mid(aData(i), found) & lf
			End If
		End If
	Next
	
	sBody = sBody & sEnd

	'Check that there is enough data to send mail
	bDataOK = True

	If len(sBody) = 0 Then
		bDataOK = False
		sMessage = "No BODY Content.<BR>"
	End If
	
	If bDataOK = True Then

		'Mail It
		sResult = mailIt(sFrom,sTo,sSubject,sBody)
		
		'If redirecting to another page, redirect before anything is written to page
		If bRedirect = True then
			Response.Redirect sRedirect
		End If

	End If
%>
