%@LANGUAGE="VBSCRIPT"%>
<%
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Spd E-Letter v4.0
' © 2001, 2002 PensaWorks
' For help with this program, please visit http://www.pensaworks.com
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Access : Access = "Broadcast"
%>
<%
if request("showError") = "Y" then
on error goto 0
else
on error resume next
end if
if lcase(strTop) = "n" then
strDoTop = false
else
strDoTop = true
end if
thisPage = "broadcast_main.asp"
response.buffer = true
server.scripttimeout = 5000
response.expiresabsolute = now() - 1
response.expires = 0
response.cachecontrol = "no-cache"
if (request("Mailer") <> "") then useMailer = request("Mailer") else useMailer = MailerProgram
if (request("Mailer") <> "") then sendMailer = request("Mailer") else sendMailer = MailerProgram
if (request("msgID") <> "" AND IsNumeric(request("msgID"))) then msgID = cint(request("msgID")) else msgID = 0
prfUnsubscribe = ActionURL & "?a=u"
if (isNumeric(BroadcastNum)) then sendPerPage = cint(BroadcastNum) else sendPerPage = 100
onNum = 0 : msgTextHeader = "" : msgTextFooter = "" : msgHTMLHeader = "" : msgHTMLFooter = "" : msgText = "" : msgHTML = ""
mlConn.Execute("UPDATE ML_Broadcast SET msgActualRecipients = 0 WHERE msgActualRecipients IS NULL")
mlConn.Execute("UPDATE ML_Broadcast SET BroadcastSubscribers = 0 WHERE BroadcastSubscribers IS NULL")
set msgRecord = Server.CreateObject("ADODB.Recordset")
msgRecord.ActiveConnection = mlConn
msgRecord.Source = "SELECT ML_Broadcast.ListID AS msgListID, msgBroadcastBegun, * FROM ML_Broadcast INNER JOIN ML_Lists ON ML_Broadcast.ListID = ML_Lists.ListID WHERE ML_Broadcast.MessageID = " & msgID
msgRecord.CursorType = 3
msgRecord.Open()
if (msgRecord.EOF) then response.redirect "message.asp?msg=36"
if not allowedList(msgRecord("msgListID"), allowedLists) then response.redirect "message.asp?msg=49"
msgBroadcastBegun = msgRecord("msgBroadcastBegun")
if msgRecord("msgIncludeTemplateText") = 1 then
msgTextHeader = msgRecord("HeaderText") : msgTextFooter = msgRecord("FooterText")
end if
if msgRecord("msgIncludeTemplateHTML") = 1 then
msgHTMLHeader = msgRecord("HeaderHTML") : msgHTMLFooter = msgRecord("FooterHTML")
end if
msgStatus = msgRecord("Status")
if (msgStatus = "Broadcasted") then response.redirect "message.asp?msg="
if msgStatus = "Pending" then
sqlStr = "UPDATE ML_Broadcast SET Status = 'Broadcasting', msgBroadcastBegun = " & getNumFromDate(now) & " WHERE MessageID = " & msgID
mlConn.Execute(sqlStr)
end if
msgListID = msgRecord("msgListID")
msgListName = msgRecord("ListName")
msgFormat = msgRecord("msgFormat")
msgSubject = msgRecord("Subject")
msgFromName = msgRecord("FromName")
msgFromEmail = msgRecord("FromEmail")
msgReplyTo = msgRecord("ReplyTo")
msgPriority = msgRecord("MessagePriority")
if lcase(useMailer) = "cdomail" or lcase(SendMailer) = "chilimail" then
if msgPriority = 5 then
msgPriority = 0
elseif msgPriority = 3 then
msgPriority = 1
elseif msgPriority = 1 then
msgPriority = 2
end if
end if
msgBroadcastSubscribers = msgRecord("BroadcastSubscribers")
msgSource = msgRecord("msgSource")
if msgSource = 1 then
msgText = msgRecord("TextMessage")
msgHTML = msgRecord("HTMLMessage")
elseif msgSource = 2 then
msgSourceFileText = msgRecord("msgSourceFileText")
msgSourceFileHTML = msgRecord("msgSourceFileHTML")
if msgFormat = 1 or msgFormat = 2 then
if doesFileExist(msgSourceFileText) then
fileData = readFileData(msgSourceFileText, fileResponse)
if NOT fileResponse then
response.redirect "message.asp?msg=51"
else
msgText = fileData
end if
else
response.redirect "message.asp?msg=51"
end if
end if
if msgFormat = 1 or msgFormat = 3 then
if doesFileExist(msgSourceFileHTML) then
fileData = readFileData(msgSourceFileHTML, fileResponse)
if NOT fileResponse then
response.redirect "message.asp?msg=51"
else
msgHTML = fileData
end if
else
response.redirect "message.asp?msg=51"
end if
end if
elseif msgSource = 3 then
msgSourceURLText = msgRecord("msgSourceURLText")
msgSourceURLHTML = msgRecord("msgSourceURLHTML")
msgSourceTextTimes = msgRecord("msgSourceTextTimes")
msgSourceHTMLTimes = msgRecord("msgSourceHTMLTimes")
if msgFormat = 1 or msgFormat = 2 then
msgText = getNewsletterData("Text", 0, "email@domain.com", "True", msgSourceURLText, bitResponse)
if (NOT bitResponse) then response.redirect "message.asp?msg=52"
end if
if msgFormat = 1 or msgFormat = 3 then
msgHTML = getNewsletterData("HTML", 0, "email@domain.com", "True", msgSourceURLHTML, bitResponse)
if (NOT bitResponse) then response.redirect "message.asp?msg=52"
end if
else
response.redirect "message.asp?msg=53"
end if
msgText = msgTextHeader & msgText & msgTextFooter
msgHTML = msgHTMLHeader & msgHTML & msgHTMLFooter
msgTextSnippets = parseSnippets(msgText, 0)
msgHTMLSnippets = parseSnippets(msgHTML, 0)
trackLinks = parseTextURLTracking(msgText, msgHTML, msgID)
msgUseSQL = msgRecord("msgUseSQL")
msgSQLStr = msgRecord("msgSQLStr")
msgOnSubscriberID = msgRecord("msgOnSubscriberID")
msgTotalSubscribers = msgRecord("msgTotalSubscribers")
msgActualRecipients = msgRecord("msgActualRecipients")
if msgUseSQL = 2 then
SQL = msgSQLStr
else
if strDoTop then
SQL = "SELECT TOP " & (sendPerPage + 2) & " * FROM ML_Subscribers WHERE subRemoved <> 1"
SQL = SQL & " AND numClicks >= " & msgRecord("msgLowClicksF") & " AND numClicks <= " & msgRecord("msgHighClicksF")
SQL = SQL & " AND SubscribedDate >= " & msgRecord("msgSinceDateF") & " AND SubscribedDate <= " & msgRecord("msgToDateF")
SQL = SQL & " AND numReads >= " & msgRecord("msgLowReadsF") & " AND numReads <= " & msgRecord("msgHighReadsF")
SQL = SQL & " AND ListID = " & msgListID
SQL = SQL & " AND SubscriberID > " & msgOnSubscriberID
SQL = SQL & " ORDER BY ML_Subscribers.SubscriberID ASC"
cntSQL = SQL
cntSQL = replace(cntSQL, "SELECT TOP " & (sendPerPage + 2) & " *", "SELECT COUNT(*) AS cnt1 ")
cntSQL = replace(cntSQL, " AND SubscriberID > " & msgOnSubscriberID, "")
cntSQL = replace(cntSQL, " ORDER BY ML_Subscribers.SubscriberID ASC", "")
cntSQL2 = SQL
cntSQL2 = replace(cntSQL2, "SELECT TOP " & (sendPerPage + 2) & " *", "SELECT COUNT(*) AS cnt1 ")
cntSQL2 = replace(cntSQL2, " ORDER BY ML_Subscribers.SubscriberID ASC", "")
else
SQL = "SELECT * FROM ML_Subscribers WHERE subRemoved <> 1"
SQL = SQL & " AND numClicks >= " & msgRecord("msgLowClicksF") & " AND numClicks <= " & msgRecord("msgHighClicksF")
SQL = SQL & " AND SubscribedDate >= " & msgRecord("msgSinceDateF") & " AND SubscribedDate <= " & msgRecord("msgToDateF")
SQL = SQL & " AND numReads >= " & msgRecord("msgLowReadsF") & " AND numReads <= " & msgRecord("msgHighReadsF")
SQL = SQL & " AND ListID = " & msgListID
SQL = SQL & " ORDER BY ML_Subscribers.SubscriberID ASC"
cntSQL = replace(SQL, "SELECT * FROM ML_Subscribers", "SELECT COUNT(*) AS cnt1 FROM ML_Subscribers")
cntSQL = replace(cntSQL, " ORDER BY ML_Subscribers.SubscriberID ASC", "")
end if
end if
set usrRecord = server.createobject("ADODB.Recordset")
usrRecord.activeconnection = mlConn
usrRecord.source = SQL
usrRecord.cursortype = 3
usrRecord.open()
if (usrRecord.EOF) then response.redirect "message.asp?msg=39&msgID=" & msgID & "&Mailer=" & server.urlencode(sendMailer)
if msgUseSQL = 2 then
sendTotal = usrRecord.recordcount
else
set cntRecords = mlConn.Execute(cntSQL)
sendTotal = cntRecords("cnt1")
set cntRecords = nothing
set cntRecords = mlConn.Execute(cntSQL2)
sendTotal2 = cntRecords("cnt1")
set cntRecords = nothing
sendTotal3 = sendTotal - sendTotal2
end if
if msgBroadcastSubscribers = 0 or isnull(msgBroadcastSubscribers) then
usrIndex = 1
msgOnSubscriberID = 0
mlConn.execute("UPDATE ML_Broadcast SET msgBroadcastBegun = " & cfgDate & ", Status = 'Broadcasting' WHERE MessageID = " & msgID)
else
if strDoTop AND msgUseSQL <> 2 then
usrIndex = 1
msgOnSubscriberID = msgRecord("msgOnSubscriberID")
else
usrIndex = msgBroadcastSubscribers
msgOnSubscriberID = msgRecord("msgOnSubscriberID")
end if
end if
sendPages = sendTotal \ sendPerPage
if sendTotal mod sendPerPage > 0 then sendPages = sendPages + 1
if msgBroadcastBegun <> "" Then
startTime = getDateFromNum(msgBroadcastBegun)
else
startTime = Now
end if
sendStart = cdate(StartTime)
sendStartPos = usrIndex - 1
sendPage = sendStartPos \ sendPerPage
sendPagesLeft = sendPages - sendPage
sendElapsed = datediff("s", sendStart, Now)
if sendElapsed = 0 or (sendStartPos < 1 AND NOT strDoTop) then
sendRemaining = 0
sendThroughput = "Unknown"
else
if strDoTop then
sendStartPos2 = sendStartPos + SendTotal3
sendRemaining = round((sendTotal - sendStartPos2) / (sendStartPos2 / sendElapsed))
sendThroughput = round(sendStartPos2 / sendElapsed, 1) & " emails/sec"
else
sendRemaining = round((sendTotal - sendStartPos) / (sendStartPos / sendElapsed))
sendThroughput = round(sendStartPos / sendElapsed, 1) & " emails/sec"
end if
end if
if sendRemaining = 0 then
sendRemaining = "Unknown"
elseif sendRemaining < 60 then
sendRemaining = sendRemaining & " sec"
else
sendRemaining = "(" & sendRemaining & ") ~ " & FormatNumber(sendRemaining/60, 1) & " min"
end if
if sendPerPage > (sendTotal - sendStartPos) then
sendPerPage = sendTotal - sendStartPos
end if
sendTotalPercent = (usrIndex / sendTotal) * 100
sendPagePercent = 0
sendTotalWidth = sendTotalPercent
sendPageWidth = 0
if lcase(right(sql, 41)) = " order by ml_subscribers.subscriberid asc" then
if strDoTop then
else
do until (usrRecord("SubscriberID") > msgOnSubscriberID)
usrRecord.movenext
loop
end if
else
usrRecord.move usrIndex - 1
end if
%>
Spd E-Letter Broadcast in Progress
 |
 |
|
Spd E-Letter Broadcast in Progress
Please do not close this window, disconnect from the Internet, nor try to broadcast another message until this current broadcast completes.
|
Current Run Progress:
|
|
Total Progress:
|
Estimated Time Remaining: <%=sendRemaining%> Average Speed: <%=sendThroughput%>
Broadcast Details
To List: |
<%=msgListName%> |
From: |
<%=msgFromName%> <<%=msgFromEmail%>> |
Reply To: |
<%=msgReplyTo%> |
Subject: |
<%=msgSubject%> |
|
Using Mailer: |
<%=useMailer%> |
|
|
 |
 |
<%
err.clear
select case SendMailer
case "ASPEmail"
Set Mailer = Server.CreateObject("Persits.MailSender")
if err.number <> 0 then
showErr = errRedirect()
response.end
end if
Mailer.Host = MailerPath
Mailer.From = msgFromEmail
Mailer.FromName = msgFromName
Mailer.AddReplyTo(msgReplyTo)
Mailer.Priority = msgPriority
end select
while (onNum < sendPerPage) AND (NOT usrRecord.EOF) AND (response.isclientconnected)
onNum = onNum + 1
if msgFormat = 3 then
emlFormatText = "HTML"
emlFormatInt = 0
emlFormatType = "text/html"
elseif msgFormat = 2 then
emlFormatText = "Text"
emlFormatInt = 1
emlFormatType = "text/plain"
else
if lcase(left(usrRecord("Format"),1)) = "h" then
emlFormatText = "HTML"
emlFormatInt = 0
emlFormatType = "text/html"
else
emlFormatText = "Text"
emlFormatInt = 1
emlFormatType = "text/plain"
end if
end if
if msgSource = 3 then
if emlFormatText = "HTML" then
if msgSourceHTMLTimes = 2 then
tempMessage = getNewsletterData("HTML", usrRecord("SubscriberID"), usrRecord("Email"), "False", msgSourceURLHTML, bitResponse)
if (NOT bitResponse) then
emlSend = false
else
if lcase(tempMessage) = "skip" then
emlSend = false
else
msgTextSnippets = parseSnippets(tempMessage, 0)
emlMessageTemp = parseTextURLTracking(tempMessage, "", msgID)
emlMessage = msgHTMLHeader & tempMessage & msgHTMLFooter
msgTextSnippets = parseSnippets(emlMessage, 0)
emlSend = true
end if
end if
else
emlMessage = msgHTML
emlSend = true
end if
else
if msgSourceTextTimes = 2 then
tempMessage = getNewsletterData("Text", usrRecord("SubscriberID"), usrRecord("Email"), "False", msgSourceURLText, bitResponse)
if (NOT bitResponse) then
emlSend = false
else
if lcase(tempMessage) = "skip" then
emlSend = false
else
msgTextSnippets = parseSnippets(tempMessage, 0)
emlMessageTemp = parseTextURLTracking("", tempMessage, msgID)
emlMessage = msgTextHeader & tempMessage & msgTextFooter
msgTextSnippets = parseSnippets(emlMessage, 0)
emlSend = true
end if
end if
else
emlMessage = msgText
msgTextSnippets = parseSnippets(emlMessage, 0)
emlSend = true
end if
end if
else
if emlFormatInt = 0 then
emlMessage = msgHTML
emlSend = true
else
emlMessage = msgText
emlSend = true
end if
end if
emlSubject = msgSubject
if emlSend then
emlSubject = customizeIt(emlSubject, usrRecord, readURL, prfUnsubscribe, msgListName, msgID, NumSubscribers)
emlMessage = customizeIt(emlMessage, usrRecord, readURL, prfUnsubscribe, msgListName, msgID, NumSubscribers)
sendIt = sendEmail()
updateSQL = "UPDATE ML_Broadcast SET BroadcastSubscribers = (BroadcastSubscribers + 1), msgBroadcastedDate = " & getNumFromDate(Now) & ", msgOnSubscriberID = " & usrRecord("SubscriberID") & ", msgActualRecipients = (msgActualRecipients + 1) WHERE MessageID = " & msgID
else
updateSQL = "UPDATE ML_Broadcast SET BroadcastSubscribers = (BroadcastSubscribers + 1), msgBroadcastedDate = " & getNumFromDate(Now) & ", msgOnSubscriberID = " & usrRecord("SubscriberID") & " WHERE MessageID = " & msgID
end if
mlConn.execute(updateSQL)
if strDoTop AND msgUseSQL <> 2 then
sendTotalPercent = round(((usrIndex + sendTotal3)* 100) / sendTotal)
else
sendTotalPercent = round((usrIndex * 100) / sendTotal)
end if
sendPagePercent = round(((usrIndex - sendStartPos) * 100) / sendPerPage)
do while sendTotalWidth <= sendTotalPercent
response.write ""
sendTotalWidth = sendTotalWidth + 1
loop
do while sendPageWidth <= sendPagePercent
response.write ""
sendPageWidth = sendPageWidth + 1
loop
response.flush()
usrRecord.movenext
usrIndex = usrIndex + 1
msgFormatInt = ""
wend
if usrRecord.EOF then
endOfBroadcast = finished()
end if
if usrIndex < sendTotal then
%>
<%
else
endOfBroadcast = finished()
end if
function sendEmail()
select case SendMailer
case "ASPMail", "ASPQMail"
set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.RemoteHost = MailerPath
Mailer.ContentType = emlFormatType
Mailer.FromName = msgFromName
Mailer.FromAddress = msgFromEmail
Mailer.ReplyTo = msgReplyTo
Mailer.AddRecipient usrRecord("Name"), usrRecord("Email")
Mailer.Subject = emlSubject
Mailer.BodyText = emlMessage
Mailer.Priority = msgPriority
if SendMailer = "ASPQMail" then
Mailer.QMessage = true
end if
Mailer.SendMail
case "ASPEmail"
Mailer.Reset
Mailer.AddAddress usrRecord("Email"), usrRecord("Name")
Mailer.Subject = emlSubject
if lcase(emlFormatText) = "text" then
Mailer.IsHTML = false
else
Mailer.IsHTML = true
end if
Mailer.Body = emlMessage
Mailer.Send
case "JMail"
Set Mailer = Server.CreateObject("JMail.SMTPMail")
Mailer.ServerAddress = MailerPath & ":" & PortNum
Mailer.ContentType = emlFormatType
Mailer.AddRecipient usrRecord("Email")
Mailer.Sender = msgFromEmail
Mailer.ReplyTo = msgReplyTo
Mailer.Subject = emlSubject
Mailer.Body = emlMessage
Mailer.Execute
case "SA-SmtpMail"
set Mailer = Server.CreateObject("SoftArtisans.SMTPMail")
Mailer.RemoteHost = MailerPath
Mailer.contenttype = emlFormatType
Mailer.AddRecipient usrRecord("Name"), usrRecord("Email")
Mailer.FromName = msgFromName
Mailer.FromAddress = msgFromEmail
Mailer.ReplyTo = msgReplyTo
Mailer.Subject = emlSubject
Mailer.BodyText = emlMessage
Mailer.SendMail
case else
set Mailer = Server.CreateObject("CDONTS.NewMail")
Mailer.MailFormat = emlFormatInt
Mailer.BodyFormat = emlFormatInt
Mailer.To = usrRecord("Name") & " <" & usrRecord("Email") & ">"
Mailer.From = msgFromName & " <" & msgFromEmail & ">"
Mailer.Subject = emlSubject
Mailer.Body = emlMessage
Mailer.Send
end select
end function
function finished()
mlConn.execute("UPDATE ML_URLs SET urlSends = " & usrIndex & " WHERE MessageID = " & msgID)
mlConn.execute("UPDATE ML_Broadcast SET Status = 'Broadcasted', msgBroadcastedDate = " & cfgDate & ", BroadcastedBy = '" & replace(session("svUsername"), "'", "''") & "' WHERE MessageID = " & msgID)
mlConn.execute("UPDATE ML_Lists SET LastEmailSentDate = " & cfgDate & " WHERE ListID = " & msgListID)
response.write ""
end function
function customizeIt(data, usrRecord, readURL, prfUnsubscribe, msgListName, msgID, NumSubscribers)
data = replace(data, "#newsletterid#", "" & msgID, 1, -1, 1)
data = replace(data, "#shortdate#", "" & formatdatetime(now, 2), 1, -1, 1)
data = replace(data, "#longdate#", "" & formatdatetime(now, 1), 1, -1, 1)
data = replace(data, "#listname#", "" & msgListName, 1, -1, 1)
data = replace(data, "#name#", "" & usrRecord("Name"), 1, -1, 1)
data = replace(data, "#email#", "" & usrRecord("Email"), 1, -1, 1)
data = replace(data, "#subscribed#", "" & getDateFromNum(usrRecord("SubscribedDate")), 1, -1, 1)
data = replace(data, "#format#", "" & usrRecord("Format"), 1, -1, 1)
data = replace(data, "#subscriberid#", "" & usrRecord("SubscriberID"), 1, -1, 1)
data = replace(data, "#numbersubscribers#", "" & NumSubscribers, 1, -1, 1)
data = replace(data, "#trackreads#", "
", 1, -1, 1)
nameArr = split(usrRecord("Name"), " ", -1, 1)
if (UBound(nameArr) >= 0) then fname = nameArr(0)
data = replace(data, "#firstname#", ""& fname, 1, -1, 1)
if instr(1, data, "#unsubscribe#", 1) then
code = 1
encode = usrRecord("Email")
for idxChar = 1 to len(encode)
code = code * asc(mid(encode, idxChar, 1)) mod 11111
next
code = code mod 10000
data = replace(data, "#unsubscribe#", prfUnsubscribe & "&i=" & usrRecord("SubscriberID") & "&c=" & code & "&m=" & msgID, 1, -1, 1)
end if
data = replaceData(usrRecord, data)
customizeIt = data
end function
function parseTextURLTracking(msgText, msgHTML, msgID)
urlText = 0
do while instr(1, msgText, "[/url]", 1) > instr(1, msgText, "[url]", 1) and instr(1, msgText, "[url]", 1) > 0
urlText = urlText + 1
urlStart = instr(1, msgText, "[url]", 1) + 5
urlEnd = instr(urlStart, msgText, "[/url]", 1)
urlRedirect = mid(msgText, urlStart, urlEnd - urlStart)
set urlRecord = Server.CreateObject("ADODB.Recordset")
urlRecord.ActiveConnection = mlConn
urlRecord.Source = "SELECT * FROM ML_URLs WHERE urlInside = 0 AND MessageID = " & msgID & " AND urlIndex = " & urlText & " ORDER BY urlID DESC"
urlRecord.CursorType = 3
urlRecord.Open()
if urlRecord.eof then
mlConn.execute("INSERT INTO ML_URLs (MessageID, urlRedirect, urlIndex, urlInside, urlClicks) VALUES (" & msgID & ", '" & replace(urlRedirect, "'", "''") & "', " & urlText & ", 0, 0)")
set urlRecord = Server.CreateObject("ADODB.Recordset")
urlRecord.ActiveConnection = mlConn
urlRecord.Source = "SELECT * FROM ML_URLs WHERE urlInside = 0 AND MessageID = " & msgID & " AND urlIndex = " & urlText & " ORDER BY urlID DESC"
urlRecord.CursorType = 3
urlRecord.Open()
end if
msgText = replace(msgText, "[url]" & urlRedirect & "[/url]", RedirectURL & "?i=#subscriberid#&l=" & urlRecord("urlID"), 1, -1, 1)
loop
if instr(1, msgText, "[/url]", 1) > 0 or instr(1, msgText, "[url]", 1) > 0 then
response.write ""
response.flush()
response.end
end if
urlHTML = 0
do while instr(1, msgHTML, "[/url]", 1) > instr(1, msgHTML, "[url]", 1) and instr(1, msgHTML, "[url]", 1) > 0
urlHTML = urlHTML + 1
urlStart = instr(1, msgHTML, "[url]", 1) + 5
urlEnd = instr(urlStart, msgHTML, "[/url]", 1)
urlRedirect = mid(msgHTML, urlStart, urlEnd - urlStart)
set urlRecord = Server.CreateObject("ADODB.Recordset")
urlRecord.ActiveConnection = mlConn
urlRecord.Source = "SELECT * FROM ML_URLs WHERE urlInside = 1 AND MessageID = " & msgID & " AND urlIndex = " & urlHTML & " ORDER BY urlID DESC"
urlRecord.CursorType = 3
urlRecord.Open()
if urlRecord.eof then
mlConn.execute("INSERT INTO ML_URLs (MessageID, urlRedirect, urlIndex, urlInside, urlClicks) VALUES (" & msgID & ", '" & replace(urlRedirect, "'", "''") & "', " & urlHTML & ", 1, 0)")
set urlRecord = Server.CreateObject("ADODB.Recordset")
urlRecord.ActiveConnection = mlConn
urlRecord.Source = "SELECT * FROM ML_URLs WHERE urlInside = 1 AND MessageID = " & msgID & " AND urlIndex = " & urlHTML & " ORDER BY urlID DESC"
urlRecord.CursorType = 3
urlRecord.Open()
end if
msgHTML = replace(msgHTML, "[url]" & urlRedirect & "[/url]", RedirectURL & "?i=#subscriberid#&l=" & urlRecord("urlID"), 1, -1, 1)
loop
if instr(1, msgHTML, "[/url]", 1) > 0 or instr(1, msgHTML, "[url]", 1) > 0 then
response.write ""
response.flush()
response.end
end if
urlTotal = urlHTML + urlText
mlConn.execute("UPDATE ML_Broadcast SET BroadcastURLs = " & urlTotal & " WHERE MessageID = " & msgID)
end function
function errRedirect()
Response.Write ""
end function
%>