<%@LANGUAGE="VBSCRIPT"%> <% on error goto 0 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Spd E-Letter v4 ' © 2001, 2002 PensaWorks, inc. ' For help with this program, please visit http://www.pensaworks.com '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim Access : Access = "Broadcast" Dim Nav3 : Nav3 = "5" response.buffer = true Session.LCID = (1033) %> <% if (isnumeric(request("msgID")) and request("msgID") <> "") then msgID = CInt(request("msgID")) else msgID = 0 if (msgID = 0) then response.redirect "newsletter_step1.asp?msg=1" set getNewsletter = server.createobject("ADODB.Recordset") getNewsletter.activeconnection = mlConn getNewsletter.source = "SELECT ML_Broadcast.ListID AS msgListID, * FROM ML_Broadcast INNER JOIN ML_Lists ON ML_Broadcast.ListID = ML_Lists.ListID WHERE ML_Broadcast.MessageID = " & msgID getNewsletter.cursortype = 3 getNewsletter.open() if (getNewsletter.EOF) then response.redirect "message.asp?msg=20" msgLowClicksF = 0 : msgHighClicksF = 9999 : msgLowReadsF = 0 : msgHighReadsF = 9999 varMonth = 1 : varDay = 1 : varYear = 1980 : varHour = 12 : varMinute = 0 : varSecond = 0 : varAMPM = "AM" varMonth2 = 12 : varDay2 = 31 : varYear2 = 2010 : varHour2 = 12 : varMinute2 = 0 : varSecond2 = 0 : varAMPM2 = "PM" showFriendly = "Y" if (getNewsletter("msgUseSQL") = 1 or getNewsletter("msgUseSQL") = 2) then msgUseSQL = getNewsletter("msgUseSQL") else msgUseSQL = 1 msgLowClicksF = getNewsletter("msgLowClicksF") msgHighClicksF = getNewsletter("msgHighClicksF") msgLowReadsF = getNewsletter("msgLowReadsF") msgHighReadsF = getNewsletter("msgHighReadsF") msgListID = getNewsletter("msgListID") msgSource = getNewsletter("msgSource") msgSQLStr = getNewsletter("msgSQLStr") msgNumDays = getNewsletter("numDays") msgType = getNewsletter("MessageType") msgSinceDateNum = getNewsletter("msgSinceDateF") msgSinceDate = getDateFromNum(msgSinceDateNum) varMonth = DatePart("m", msgSinceDate) : varDay = DatePart("d", msgSinceDate) : varYear = DatePart("yyyy", msgSinceDate) : varHour = DatePart("h", msgSinceDate) : varMinute = DatePart("n", msgSinceDate) : varSecond = DatePart("s", msgSinceDate) : varAMPM = Right(Trim(msgSinceDate),2) msgToDateNum = getNewsletter("msgToDateF") msgToDate = getDateFromNum(msgToDateNum) varMonth2 = DatePart("m", msgToDate) : varDay2 = DatePart("d", msgToDate) : varYear2 = DatePart("yyyy", msgToDate) : varHour2 = DatePart("h", msgToDate) : varMinute2 = DatePart("n", msgToDate) : varSecond2 = DatePart("s", msgToDate) : varAMPM2 = Right(Trim(msgToDate),2) msgSubject = getNewsletter("Subject") msgListname = getNewsletter("Listname") if msgType = "S" then action = "regular" '=============================================== ' Do validation on which filter type to use '=============================================== if lcase(request("action")) = "go" then if request("msgUseSQL") = 2 then action = "custom" elseif request("msguseSQL") = 1 then action = "regular" else msg = 1 end if end if '=============================================== ' Do validation on Regular Filters '=============================================== if lcase(request("action")) = "regular" then action = "regular" varMonth = CInt(request("varMonth")) : varMonth2 = CInt(request("varMonth2")) varDay = CInt(request("varDay")) : varDay2 = CInt(request("varDay2")) varYear = CInt(request("varYear")) : varYear2 = CInt(request("varYear2")) varHour = CInt(request("varHour")) : varHour2 = CInt(request("varHour2")) varMinute = CInt(request("varMinute")) : varMinute2 = CInt(request("varMinute2")) varSecond = CInt(request("varSecond")) : varSecond2 = CInt(request("varSecond2")) varAMPM = request("varAMPM") : varAMPM2 = request("varAMPM2") if msgType = "S" then msgSinceDate = Now msgToDate = Now else msgSinceDate = varMonth & "/" & varDay & "/" & varYear & " " & varHour & ":" & varMinute & ":" & varSecond & " " & varAMPM msgToDate = varMonth2 & "/" & varDay2 & "/" & varYear2 & " " & varHour2 & ":" & varMinute2 & ":" & varSecond2 & " " & varAMPM2 end if if (isnumeric(request("msgLowClicksF"))) then msgLowClicksF = CInt(request("msgLowClicksF")) if (isnumeric(request("msgHighClicksF"))) then msgHighClicksF = CInt(request("msgHighClicksF")) if (isnumeric(request("msgLowReadsF"))) then msgLowReadsF = CInt(request("msgLowReadsF")) if (isnumeric(request("msgHighReadsF"))) then msgHighReadsF = CInt(request("msgHighReadsF")) if (isnumeric(request("msgNumDays"))) then msgNumDays = CInt(request("msgNumDays")) if not IsDate(msgSinceDate) then msg = 2 else if not IsDate(msgToDate) then msg = 3 else if (msgType = "S" AND (not IsNumeric(msgNumDays) or msgNumDays < 1)) then msg = 4 else if (NOT IsNumeric(msgLowClicksF) or NOT IsNumeric(msgHighClicksF)) then msg = 5 else if (NOT IsNumeric(msgLowReadsF) or NOT IsNumeric(msgHighReadsF)) then msg = 6 else if msgLowClicksF < 0 or msgHighClicksF < 0 then msg = 5 else if msgLowReadsF < 0 or msgHighReadsF < 0 then msg = 6 else if msgType <> "S" AND (msgHighClicksF < msgLowClicksF) then msg = 7 else if msgType <> "S" AND (msgHighReadsF < msgLowReadsF) then msg = 8 else ' go..? msgSinceDateNum = getNumFromDate(msgSinceDate) msgToDateNum = getNumFromDate(msgToDate) strSQL = "UPDATE ML_Broadcast SET " strSQL = strSQL & "msgUseSQL = 1, " strSQL = strSQL & "NumDays = " & msgNumDays & ", " strSQL = strSQL & "msgLowClicksF = " & msgLowClicksF & ", " strSQL = strSQL & "msgHighClicksF = " & msgHighClicksF & ", " strSQL = strSQL & "msgLowReadsF = " & msgLowReadsF & ", " strSQL = strSQL & "msgHighReadsF = " & msgHighReadsF & ", " strSQL = strSQL & "msgSinceDateF = " & msgSinceDateNum & ", " strSQL = strSQL & "msgToDateF = " & msgToDateNum & " " strSQL = strSQL & "WHERE MessageID = " & msgID mlConn.Execute(strSQL) response.redirect "newsletter_step4.asp?msgID=" & msgID end if end if end if end if end if end if end if end if end if end if '=============================================== ' Do validation on custom SQL Query '=============================================== if lcase(request("Action")) = "custom" then action = "custom" msgSQLStr = trim(request("msgSQLStr")) showFriendly = request("showFriendly") if (showFriendly = "Y") then on error resume next else on error goto 0 end if if msgSQLStr = "" then msg = 1 else if lcase(left(msgSQLStr, 6)) <> "select" then msg = 2 else set testSQL = server.createobject("ADODB.Recordset") testSQL.activeconnection = mlConn testSQL.source = msgSQLStr testSQL.cursortype = 3 testSQL.open() if err.number <> 0 then msg = 3 errDesc = err.description else if testSQL.EOF then msg = 9 else subName = testSQL("Name") if err.number <> 0 then msg = 4 else subEmail = testSQL("Email") if err.number <> 0 then msg = 5 else subID = testSQL("SubscriberID") if err.number <> 0 then msg = 6 else subFormat = testSQL("Format") if err.number <> 0 then msg = 7 else subscribeDate = testSQL("SubscribedDate") if err.number <> 0 then msg = 8 else strSQL = "UPDATE ML_Broadcast SET " strSQL = strSQL & "msgUseSQL = 2, " strSQL = strSQL & "msgSQLStr = '" & replace(msgSQLStr, "'", "''") & "' " strSQL = strSQL & "WHERE MessageID = " & msgID mlConn.Execute(strSQL) response.redirect "newsletter_step4.asp?msgID=" & msgID end if end if end if end if end if end if end if end if end if end if %> <%=ListName%> - Spd E-Letter Administration

Create Newsletter - Step 3

<% if action = "custom" then %> <% if msg = 1 then %>

Missing Information. Please complete all fields.

<% elseif msg = 2 then %>

Error: Your SQL Statement must begin with SELECT.

<% elseif msg = 3 then %>

Error: Invalid SQL Statement.

<% elseif msg = 4 then %>

Error: You must pull the subscriber's Name as [Name] in your SELECT statement in order for broadcasting to work.

<% elseif msg = 5 then %>

Error: You must pull the subscriber's Email as [Email] in your SELECT statement in order for broadcasting to work.

<% elseif msg = 6 then %>

Error: You must pull the subscriber's ID as [SubscriberID] in your SELECT statement in order for broadcasting to work..

<% elseif msg = 7 then %>

Error: You must pull the subscriber's Format as [Format] in your SELECT statement in order for broadcasting to work.

<% elseif msg = 8 then %>

Error: You must pull the subscriber's Subscribe Date as [SubscribedDate] in your SELECT statement in order for broadcasting to work.

<% elseif msg = 9 then %>

Your SQL Query returned no results.

<% end if %> <% if errdesc <> "" then %> <% end if %>
Newsletter Filters
Newsletter Subject:
<%=msgSubject%>
Newsletter Source:
<% if msgSource = 2 then %> From File <% elseif msgSource = 3 then %> Executed Page <% else %> Entered Data <% end if %>
To List:
<%=msgListname%> (ListID = <%=msgListID%>)
Custom SQL Query:
Error Description:
<%=errDesc%>
Show Friendly Errors:
>

<% elseif action = "regular" then %> <% if msg = 1 then %>

Missing Information. Please complete all fields.

<% elseif msg = 2 then %>

Invalid "After Date".

<% elseif msg = 3 then %>

Invalid "Before Date".

<% elseif msg = 4 then %>

Invalid days. An automated email must be sent out at least 1 day after a person subscribes.

<% elseif msg = 5 then %>

Invalid Clicks Filter. They must be positive numbers.

<% elseif msg = 6 then %>

Invalid Reads Filter. They must be positive numbers.

<% elseif msg = 7 then %>

Invalid High Clicks Filter. This number must be higher or equal to the Low Clicks Filter or no records will be selected.

<% elseif msg = 8 then %>

Invalid High Reads Filter. This number must be higher or equal to the Low Reads Filter or no records will be selected.

<% end if %> <% if msgType = "S" then %> <% else %> <% end if %>
Newsletter Filters
Send to Subscriber after:
Day(s)
Select those who subscribed after:

Format: Month/Day/Year Hour:Minute:Second AM|PM
But before this date:

Format: Month/Day/Year Hour:Minute:Second AM|PM
Select those with at least:
tracked clicks (Low Clicks)
and under:
tracked clicks (High Clicks)
Select those with at least:
reads (Low Reads)
and under:
reads (High Reads)

<% else %> <% if msg = 1 then %>

Missing Information. Please complete all fields.

<% end if %>
Newsletter Filters
Use Filter Type:
>Regular Spd E-Letter Filters
>Custom SQL Query (For Advanced Users Only)

<% end if %>