[[ rem ========== SET THE LOG ========== ]]
[[ log("begin test log"+CR) ]]
[[ log(" "+CR+" "+CR) ]]
[[ log("Begin General Admin"+CR) ]]
[[ log(" "+CR+" "+CR) ]]
[[ rem ---------- end of set the log ---------- ]]
[[ var HeaderSubjectMain = "WHO KNOWS WHAT THIS IS FOR" ]]
[[ var HeaderSubject = "BBBBB" ]]
[[ var HeaderSenderAddress = "CCCCC" ]]
[[ var HeaderFromAddress = "DDDDD" ]]
[[ var HeaderReplyToAddress = "EEEEE" ]]
[[ var ResponseFileName = "Bounce.txt" ]]
[[ var DisplayBounceCount = 0 ]]
[[ rem ========== SET GLOBAL "CONSTANTS" ========== ]]
[[ var CRC = 0 ]]
[[ rem ---------- end of set global "constants" ---------- ]]
[[ rem ========== SET VARIABLES FOR THIS CYCLE ========== ]]
[[ rem Generate the Random String for the Confirmation Code ]]
[[ var RandomString = convert_to_string(random(1234567890, 9876543210)) ]]
[[ var RandomString = "1234567123" ]]
[[ rem ---------- end of set variables for this cycle ---------- ]]
[[ rem ========== SET EZINE SPECIFIC VARIABLES ========== ]]
[[ gmerge(file_fetch(ScriptFileBaseEzine + "Set Info.txt")) ]]
[[ rem ---------- end of set ezine specific variables ---------- ]]
[[ rem ========== SET VARIABLES THAT DON'T CHANGE ========== ]]
[[ var IncomingAddressee = incoming_get_header("To") ]]
[[ var IncomingAddresseeLC = convert_lower_case(IncomingAddressee) ]]
[[ var IncomingAddresseeStripped = str_replace_i(IncomingAddressee, "<", "~") ]] [[ var IncomingAddresseeStripped = str_replace_i(IncomingAddresseeStripped, ">", "~") ]]
[[ var IncomingAddresseeStripped = str_replace_i(IncomingAddresseeStripped, "@", "(at)") ]]
[[ var AddressToForwardMe = EzineNameShort + " FORWARD (was " + IncomingAddresseeStripped + ") <" + EzinePersonalSendAddress + ">" ]]
[[ var EmailDateStr = incoming_get_header("Date") ]]
[[ var EmailDateDT = convert_to_date(EmailDateStr) ]]
[[ log("EmailDateStr: "+EmailDateStr+CR) ]]
[[ log("EmailDateDT: "+EmailDateDT+CR) ]]
[[ rem Remove quotation marks from -Recipient- ]]
[[ var RecipientMod = str_replace(-Recipient-, """", "") ]]
[[ var EmailLC = (convert_lower_case(-Email-)) ]]
[[ var IPAddress = incoming_get_ip() ]]
[[ rem Create a lower case subject string with no spaces to use to check for confirmation codes ]]
[[ var SubjectPackedLC = -Subject- ]]
[[ var Loc=str_find (SubjectPackedLC, " ", 0) ]]
[[ while Loc > -1 ]]
[[ log("removing spaces from the Packed Subject"+CR) ]]
[[ var Length = str_length(SubjectPackedLC) ]]
[[ var SubjectPackedLC = str_substring(SubjectPackedLC, 0, Loc) + str_substring(SubjectPackedLC, Loc+1, Length-Loc-1) ]]
[[ log("SubjectPackedLC: "+SubjectPackedLC+"!!!"+CR) ]]
[[ var Loc=str_find (SubjectPackedLC, " ", 0) ]]
[[ endw ]]
[[ var SubjectPackedLC = convert_lower_case(SubjectPackedLC) ]]
[[ var ModSubject1 = -Subject- ]]
[[ var ModSubject2 = "" ]]
[[ var LengthModSubject1 = str_length(ModSubject1) ]]
[[ log("LengthModSubject1: "+LengthModSubject1+CR) ]]
[[ if LengthModSubject1 > 50 ]]
[[ log("split the subject"+CR) ]]
[[ var CharPos1 = 49 ]]
[[ while str_substring(ModSubject1, CharPos1, 1) != " " ]]
[[ var CharPos1 = CharPos1 - 1 ]]
[[ endw ]]
[[ log("CharPos1: "+number_format(CharPos1)+CR) ]]
[[ var CharPos2 = CharPos1 ]]
[[ while str_substring(ModSubject1, CharPos2, 1) = " " ]]
[[ var CharPos2 = CharPos2 + 1 ]]
[[ endw ]]
[[ log("CharPos2: "+number_format(CharPos2)+CR) ]]
[[ var ModSubject2 = str_substring(ModSubject1, CharPos2, LengthModSubject1 - CharPos2) ]]
[[ var ModSubject1 = str_substring(ModSubject1, 0, CharPos1) ]]
[[ log("ModSubject1: "+ModSubject1+CR) ]]
[[ log("ModSubject2: "+ModSubject2+CR) ]]
[[ endif ]]
[[ rem ---------- end of set variables that don't change ---------- ]]
[[ rem ========== INITIALIZE VARIABLES ========== ]]
[[ rem ++++++++++++++++++++++++++++++ ]]
[[ var ConfirmationNumber = "" ]]
[[ var ConfirmationCode = "" ]]
[[ var SimpleEmailAddress = "" ]]
[[ var ConfirmDoubleResponse = FALSE ]]
[[ var GoodConfirmFormat = FALSE ]]
[[ var ContinueCheckingEmail = TRUE ]]
[[ var BounceEmail = FALSE ]]
[[ var SubscribeInAddress = FALSE ]]
[[ var SubscribeInSubject = FALSE ]]
[[ var SubscribeRequest = FALSE ]]
[[ var SubscribeRequestFromWebForm = FALSE ]]
[[ var UnsubscribeInAddress = FALSE ]]
[[ var UnsubscribeInSubject = FALSE ]]
[[ var UnsubscribeRequest = FALSE ]]
[[ var UnsubscribeRequestFromWebForm = FALSE ]]
[[ var ConfirmInSubject = FALSE ]]
[[ var ConfirmInBody = FALSE ]]
[[ var ConfirmRequest = FALSE ]]
[[ var SpamTestInAddress = FALSE ]]
[[ var SpamTestRequest = FALSE ]]
[[ var WhitelistInfoInAddress = FALSE ]]
[[ var WhitelistInfoRequest = FALSE ]]
[[ var MailwasherInAddress = FALSE ]]
[[ var MailwasherRequest = FALSE ]]
[[ var UnconfirmRequest = FALSE ]]
[[ var UnknownRequest = FALSE ]]
[[ var UseCommonEndProcess = FALSE ]]
[[ var GoodSubscriptionRequest = FALSE ]]
[[ var GoodSubscriptionConfirmRequest = FALSE ]]
[[ var ConfirmationCodeFromSubject = "" ]]
[[ var ConfirmationCodeFromBody = "" ]]
[[ var EmailVia = "Email" ]]
[[ var EmailDateTag = "Email Time" ]]
[[ var Message1 = "" ]]
[[ var Message2 = "" ]]
[[ var Message3 = "" ]]
[[ var Message4 = "" ]]
[[ log("After Initialize Variables"+CR) ]]
[[ rem ---------- end of initialize variables ---------- ]]
[[ rem ========== IF FORWARDING IS INDICATED, FORWARD TO ME ========== ]]
[[ log("Forward Check"+CR) ]]
[[ if ForwardToMe ]]
[[ log("Doing Forward"+CR) ]]
[[ var ForwardSuccess = incoming_forward(AddressToForwardMe) ]]
[[ endif ]]
[[ rem ========== CHECK FOR BOUNCE ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Determine if a Bounce ]]
[[ log("Checking for Bounce"+CR) ]]
[[ var BounceEmail = incoming_is_bounce() ]]
[[ if BounceEmail ]]
[[ log("Found a Bounce"+CR) ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for bounce ---------- ]]
[[ rem ========== CHECK FOR RESTRICTED EMAIL ADDRESS ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Determine if a Restricted Email Address ]]
[[ rem A Restricted Email Address is one of: ]]
[[ rem Subscribe Address ]]
[[ rem Unsubscribe Address ]]
[[ rem Admin Address ]]
[[ rem Delivery Address ]]
[[ rem Spam Test Address ]]
[[ rem Whitelist Information Address ]]
[[ rem Mailwasher Info Address ]]
[[ if str_contains_i(EmailLC, EzineSubscribeAddress) or
str_contains_i(EmailLC, EzineUnsubscribeAddress) or
str_contains_i(EmailLC, EzineAdminAddress) or
str_contains_i(EmailLC, EzineDeliveryAddress) or
str_contains_i(EmailLC, EzineHelpAddress) or
str_contains_i(EmailLC, EzineSpamTestAddress) or
str_contains_i(EmailLC, EzineWhitelistInfoAddress) or
str_contains_i(EmailLC, EzineWhitelistInfoMailwasherAddress) or
str_contains_i(EmailLC, "mailer-daemon") ]]
[[ log("this is a Restricted Email Address"+CR) ]]
[[ var RestrictedEmailAddress = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ else ]]
[[ var RestrictedEmailAddress = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for restricted email address ---------- ]]
[[ rem ========== CHECK FOR UNSUBSCRIBE REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check Address for "-unsubscribe" ]]
[[ var UnsubscribeInAddress = str_contains_i(IncomingAddresseeLC, "-unsubscribe") ]]
[[ rem Check Subject for "unsubscribe" ]]
[[ var UnsubscribeInSubject = str_contains_i(SubjectPackedLC, "unsubscribe") ]]
[[ if UnsubscribeInAddress or UnsubscribeInSubject ]]
[[ var UnsubscribeRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for unsubscribe request ---------- ]]
[[ rem ========== CHECK FOR WEB FORM UNSUBSCRIBE REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check a Subject that indicates it is a web form request to unsubscribe ]]
[[ var UnsubscribeRequestFromWebForm = str_contains_i(-Subject-, WebUnsubscribeSubject) ]]
[[ if UnsubscribeRequestFromWebForm ]]
[[ var UnsubscribeRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ var EmailVia = "Web Form" ]]
[[ var EmailDateTag = "Web Mail Time" ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for web form unsubscribe request ---------- ]]
[[ rem ========== CHECK FOR SUBSCRIBE REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check Address for "-subscribe" ]]
[[ var SubscribeInAddress = str_contains_i(IncomingAddresseeLC, "-subscribe") ]]
[[ rem Check Subject for "subscribe" ]]
[[ var SubscribeInSubject = str_contains_i(SubjectPackedLC, "subscribe") ]]
[[ if SubscribeInAddress or SubscribeInSubject ]]
[[ var SubscribeRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for subscribe request ---------- ]]
[[ rem ========== CHECK FOR WEB FORM SUBSCRIBE REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check subject for the WebSubscribeSubject ]]
[[ var SubscribeRequestFromWebForm = str_contains_i(-Subject-, WebSubscribeSubject) ]]
[[ if SubscribeRequestFromWebForm ]]
[[ var SubscribeRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ var EmailVia = "Web Form" ]]
[[ var EmailDateTag = "Web Mail Time" ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for web form subscribe request ---------- ]]
[[ rem ========== CHECK FOR SPAM TEST REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check Address for "-spamtest" or "-spam-test" ]]
[[ var SpamTestInAddress1 = str_contains_i(IncomingAddresseeLC, "-spamtest") ]]
[[ var SpamTestInAddress2 = str_contains_i(IncomingAddresseeLC, "-spam-test") ]]
[[ var SpamTestInAddress = SpamTestInAddress1 or SpamTestInAddress2 ]]
[[ if SpamTestInAddress ]]
[[ var SpamTestRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for spam test request ---------- ]]
[[ rem ========== CHECK FOR WHITELIST INFO REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ log("Checking Whitelist"+CR) ]]
[[ rem Check Address for "-whitelist" ]]
[[ var WhitelistInfoInAddress = str_contains_i(IncomingAddresseeLC, "-whitelist") ]]
[[ if WhitelistInfoInAddress ]]
[[ var WhitelistInfoRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for whitelist info request ---------- ]]
[[ rem ========== CHECK FOR MAILWASHER WHITELIST INFO REQUEST ========== ]]
[[ If ContinueCheckingEmail ]]
[[ log("Checking Mailwasher Whitelist"+CR) ]]
[[ rem Check Address for "-mailwasher" ]]
[[ var MailwasherInAddress = str_contains_i(IncomingAddresseeLC, "-mailwasher") ]]
[[ if MailwasherInAddress ]]
[[ var MailwasherRequest = TRUE ]]
[[ var WhitelistInfoRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for mailwasher whitelist info request ---------- ]]
[[ rem ========== CHECK FOR CONFIRM REQUEST (CONFIRM IN SUBJECT) ========== ]]
[[ If ContinueCheckingEmail ]]
[[ rem Check Subject for "[c-" ]]
[[ var ConfirmInSubject = str_contains_i(SubjectPackedLC, "[c-") ]]
[[ if ConfirmInSubject ]]
[[ var ConfirmRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ log("found confirm in subject"+CR) ]]
[[ var ConfirmationCodeFromBody = latch_i(-Body-, "SCC:") ]]
[[ var ConfirmationCodeFromBody = str_trim(ConfirmationCodeFromBody) ]]
[[ if ConfirmationCodeFromBody != "" ]]
[[ var ConfirmInBody = TRUE ]]
[[ log("found confirm in body ALSO"+CR) ]]
[[ log("ConfirmationCodeFromBody: "+ConfirmationCodeFromBody+CR) ]]
[[ else ]]
[[var ConfirmationCodeFromBody = "Confirmation Code Not Found in Body of Email" ]]
[[ endif ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for confirm request (confirm in subject) ---------- ]]
[[ rem ========== CHECK FOR EMBEDDED CONFIRM REQUEST (CONFIRM IN BODY) ========== ]]
[[ If ContinueCheckingEmail ]]
[[ log("Checking Embedded Confirm Request"+CR) ]]
[[ rem Check body for "SCC: " ]]
[[ var ConfirmationCodeFromSubject = "Confirmation Code Not Found in Subject" ]]
[[ var ConfirmationCodeFromBody = latch_i(-Body-, "SCC:") ]]
[[ var ConfirmationCodeFromBody = str_trim(ConfirmationCodeFromBody) ]]
[[ if ConfirmationCodeFromBody != "" ]]
[[ var ConfirmInBody = TRUE ]]
[[ var ConfirmRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ log("found confirm in body ONLY"+CR) ]]
[[ log("ConfirmationCodeFromBody: "+ConfirmationCodeFromBody+CR) ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of check for embedded confirm request (confirm in body) ---------- ]]
[[ rem ========== DESIGNATE AS UNKNOWN PROCESS ========== ]]
[[ If ContinueCheckingEmail ]]
[[ var UnknownRequest = TRUE ]]
[[ var ContinueCheckingEmail = FALSE ]]
[[ log("this is an UnknownRequest"+CR) ]]
[[ endif ]]
[[ rem ---------- end of designate as unknown process ---------- ]]
[[ rem ========== PREPROCESS WEB FORMS ========== ]]
[[ if SubscribeRequestFromWebForm or UnsubscribeRequestFromWebForm ]]
[[ rem Reset the "email variables" which Gammadyne "presets" ]]
[[ rem so they will appear that the email came "from" the sender ]]
[[ rem -Email- --- The Email address of the sender ]]
[[ let -Email- = latch_i(-Body-, "subscriberemail:") ]]
[[ rem EmailLC (the lower case version of -Email- ]]
[[ var EmailLC = (convert_lower_case(-Email-)) ]]
[[ rem -FullName- --- The Name of the sender ]]
[[ let -FullName- = latch_i(-Body-, "subscribername:") ]]
[[ rem -Recipient- --- Combined name and email address of sender ]]
[[ if -FullName- != NULL ]]
[[ let -Recipient- = -FullName- + " <" + -Email- + ">" ]]
[[ else ]]
[[ let -Recipient- = -Email- ]]
[[ endif ]]
[[ rem Remove any quotes from Recipient to create RecipientMod ]]
[[ var RecipientMod = str_replace(-Recipient-, """", "") ]]
[[ rem Extract the IP Address variable from the email ]]
[[ var IPAddress = latch_i(-Body-, "ipaddr:") ]]
[[ rem Extract first name and last name ]]
[[ let -FirstName- = extract_first_name(-FullName-) ]]
[[ if -FirstName- != -FullName- ]]
[[ let -LastName- = extract_last_name(-FullName-) ]]
[[ else ]]
[[ let -LastName- = "" ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of preprocess web forms ---------- ]]
[[ rem ========== GRAB FIRST, MIDDLE AND LAST NAME DATA ========== ]]
[[ var LastNameMod = -LastName- ]]
[[ if -FirstName- != NULL ]]
[[ var FirstNameMod = -FirstName- ]]
[[ else ]]
[[ var FirstNameMod = "" ]]
[[ endif ]]
[[ if -FirstName- = NULL and -LastName- = NULL and -FullName- != NULL ]]
[[ var FirstNameMod = -FullName- ]]
[[ endif ]]
[[ if -FirstName- != NULL and -LastName- != NULL]]
[[ rem Isolate the Middle Name manually ]]
[[ var MiddleNameExtracted = latch_until_i(-FullName- + "", -FirstName- + "", -LastName- + "") ]]
[[ else ]]
[[ var MiddleNameExtracted = "" ]]
[[ endif ]]
[[ rem ---------- end of grab first, middle and last name data ---------- ]]
[[ rem ========== CHECK FOR SPECIAL DOMAIN NAMES ========== ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzaol.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "aol.com" ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzatt.netzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "att.net" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzcomcast.netzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "comcast.net" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzearthlink.netzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "earthlink.net" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzgmail.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "gmail.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzhotmail.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "hotmail.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzmindspring.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "mindspring.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzmsn.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "msn.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzmyvzw.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "myvzw.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzsbcglobal.netzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "sbcglobal.net" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzsprintmail.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "sprintmail.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzyahoo.comzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "yahoo.com" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var TestDomain = str_contains_i(MiddleNameExtracted, "zzworldnet.att.netzz") ]]
[[ if TestDomain ]]
[[ var DomainNameLC = "worldnet.att.net" ]]
[[ endif ]]
[[ endif ]]
[[ if !TestDomain ]]
[[ var DomainNameLC = convert_lower_case(-Domain-) ]]
[[ endif ]]
[[ if DomainNameLC = "aol.com" or DomainNameLC = "hotmail.com" or DomainNameLC = "msn.com" or DomainNameLC = "yahoo.com" or DomainNameLC = "gmail.com" ]]
[[ var DomainNotice = TRUE ]]
[[ else ]]
[[ var DomainNotice = FALSE ]]
[[ endif ]]
[[ if DomainNameLC = "aol.com" ]]
[[ var DomainAOL = TRUE ]]
[[ else ]]
[[ var DomainAOL = FALSE ]]
[[ endif ]]
[[ rem ---------- end of check for special domain names ---------- ]]
[[ rem ========== PROCESS BOUNCE ========== ]]
[[ if BounceEmail ]]
[[ rem SEEMS to be a bounce email ]]
[[ rem Check to see if the sender is in the database ]]
[[ rem IF they ARE, treat it as "unprocessed" ]]
[[ rem IF they are NOT, treat it as a BOUNCE ]]
[[ if !db_acquire_row(EmailLC) ]]
[[ rem sender is NOT in the database; Email Address NOT found ]]
[[ rem Treat as a bounce ]]
[[ var AdminBounce = FALSE ]]
[[ var DeliveryBounce = FALSE ]]
[[ rem Determine the type of bounce (Delivery, Admin, Misc) by looking at the TO address ']]
[[ if str_contains_i(IncomingAddresseeLC, EzineDeliveryAddress) ]]
[[ log("Delivery Bounce: " + IncomingAddresseeLC+CR) ]]
[[ var DeliveryBounce = TRUE ]]
[[ elseif str_contains_i(IncomingAddresseeLC, EzineAdminAddress) ]]
[[ log("Admin Bounce: " + IncomingAddresseeLC+CR) ]]
[[ var AdminBounce = TRUE ]]
[[ elseif str_contains_i(IncomingAddresseeLC, EzineDeliveryAddress) ]]
[[ log("Delivery Bounce: " + IncomingAddresseeLC+CR) ]]
[[ var DeliveryBounce = TRUE ]]
[[ else ]]
[[ log("Misc Bounce: " + IncomingAddresseeLC+CR) ]]
[[ endif ]]
[[ var HeaderSubjectMain = EzineNameShort + " Bounce" ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain + " " + ConfirmationCode ]]
[[ var HeaderSenderAddress = EzineBounceProcessAddress ]]
[[ var HeaderFromAddress = EzineBounceProcessAddress ]]
[[ var HeaderReplyToAddress = EzineBounceProcessAddress ]]
[[ var ResponseFileName = "Bounce.txt" ]]
[[ var DisplayBounceCount = 0 ]]
[[ var BounceEmailAddress = incoming_get_bounce() ]]
[[ log("BounceEmailAddress: " + BounceEmailAddress+CR) ]]
[[ if db_acquire_row(convert_lower_case(BounceEmailAddress)) ]]
[[ log("FOUND the subscriber: " + BounceEmailAddress+CR) ]]
[[ var DisplayFullEmailAddress = FullEmailAddress ]]
[[ var DisplayBounceCount = BounceCount ]]
[[ if DeliveryBounce ]]
[[ rem This is a Delivery Bounce ]]
[[ var DisplayBounceCount = DisplayBounceCount + 1 ]]
[[ let BounceCount = DisplayBounceCount ]]
[[ if SubscriberStatus = TRUE ]]
[[ if BounceCount >= 5 ]]
[[ log("Unsubscribing on Bounce Count"+CR) ]]
[[ let SubscriberStatus = FALSE ]]
[[ let UnsubscribeReason = "Bounces" ]]
[[ let UnsubscribeDate = MyNow ]]
[[ let UnsubscribeSource = "Bounces" ]]
[[ let LastActionDate = MyNow ]]
[[ var Message1 = "Unsubscribed on bounces." ]]
[[ else ]]
[[ var Message1 = "Bounced. Remains subscribed." ]]
[[ endif ]]
[[ else ]]
[[ log("Already unsubscribed"+CR) ]]
[[ var Message1 = "Already unsubscribed." ]]
[[ endif ]]
[[ else ]]
[[ rem This is NOT a Delivery Bounce ]]
[[ if AdminBounce ]]
[[ var Message1 = "NOT a Delivery Bounce. This is an ADMIN Bounce." ]]
[[ elseif ]]
[[ var Message1 = "NOT a Delivery Bounce. This is an UNKNOWN Bounce." ]]
[[ endif ]]
[[ endif ]]
[[ else ]]
[[ var DisplayFullEmailAddress = -Email- ]]
[[ var Message1 = "Subscriber not found." ]]
[[ endif ]]
[[ var ResponseFileName = "Bounce.txt" ]]
[[ rem Adjust -Recipient- before responding ]]
[[ let -Recipient- = EzineBounceProcessAddress ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + ResponseFileName ]]
[[ log("Sending bounce notification"+CR) ]]
[[ incoming_autorespond() ]]
[[ else ]]
[[ rem YES, in the database; Treat as "unprocessed" ]]
[[ log("Sender found ... treat as unprocessed"+CR) ]]
[[ var BounceEmail = FALSE ]]
[[ var UnknownRequest = TRUE ]]
[[ var UseCommonEndProcess = TRUE ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of process bounce ---------- ]]
[[ rem ========== PROCESS SUBSCRIBE REQUEST ========== ]]
[[ if SubscribeRequest ]]
[[ log("Process Subscribe Request"+CR) ]]
[[ var Request = FALSE ]]
[[ rem Check to see if the person is in the database ]]
[[ if !db_acquire_row(EmailLC) ]]
[[ rem NOT in the database; Email Address NOT found ]]
[[ rem Add a basic record and Set for Confirmation ]]
[[ db_add_row() ]]
[[ var GoodSubscriptionRequest = TRUE ]]
[[ let SubscriberStatus = FALSE ]]
[[ let SentStatus = FALSE ]]
[[ rem FullEmailAddress will be replaced at the end of the processing ]]
[[ let FullEmailAddress = "TO BE REPLACED" ]]
[[ let SimpleEmailAddress = EmailLC ]]
[[ let OriginalSubscribeDate = EmailDateStr ]]
[[ let LastSubscribeDate = EmailDateStr ]]
[[ let SubscribeSource = EmailVia ]]
[[ let SubscribeEmail = RecipientMod ]]
[[ let SubscribeIPAddress = IPAddress ]]
[[ let SubscribeConfirmDate = "" ]]
[[ let SubscribeConfirmEmail = "" ]]
[[ let SubscribeConfirmIPAddress = "" ]]
[[ let UnsubscribeReason = "" ]]
[[ let UnsubscribeDate = "" ]]
[[ let UnsubscribeEmail = "" ]]
[[ let UnsubscribeIPAddress = "" ]]
[[ let UnsubscribeConfirmDate = "" ]]
[[ let UnsubscribeConfirmEmail = "" ]]
[[ let UnsubscribeConfirmIPAddress = "" ]]
[[ let ConfirmationAction = "" ]]
[[ let ConfirmationNumber = "" ]]
[[ let ConfirmationResendCount = 0 ]]
[[ let LastConfirmationResendDate = MyNow ]]
[[ let LastActionDate = MyNow ]]
[[ let LastAction = "Added Record" ]]
[[ let BounceCount = NULL ]]
[[ rem FirstName, MiddleName and LastName will be replaced later ]]
[[ let FirstName = "" ]]
[[ let MiddleName = "" ]]
[[ let LastName = "" ]]
[[ let Notes = "" ]]
[[ rem Set Response to reflect normal case ]]
[[ var HeaderSubjectMain = HeaderSubjectMainSubscribeNormal ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressSubscribeNormal ]]
[[ var ResponseFileName = ResponseFileNameSubscribeNormal ]]
[[ rem End of processing for a new subscriber ]]
[[ else ]]
[[ rem FOUND in the database; Email Address WAS found ]]
[[ rem Check whether curently a subscriber ]]
[[ if SubscriberStatus = FALSE ]]
[[ rem NOT a subscriber ]]
[[ rem Whether already pending or not, ]]
[[ rem will need to update the name and record ]]
[[ var GoodSubscriptionRequest = TRUE ]]
[[ rem Check whether already pending ]]
[[ if ConfirmationNumber != "" and ConfirmationNumber != NULL ]]
[[ rem Subscription is already pending ]]
[[ rem Set Response to reflect special case: Resetting ]]
[[ var HeaderSubjectMain = HeaderSubjectMainSubscribeReset ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressSubscribeReset ]]
[[ var ResponseFileName = ResponseFileNameSubscribeReset ]]
[[ let LastActionDate = MyNow ]]
[[ let LastAction = "Reset Subscription Pending" ]]
[[ else ]]
[[ rem Subscription is NOT already pending ]]
[[ rem Set Response to reflect normal case ]]
[[ var HeaderSubjectMain = HeaderSubjectMainSubscribeNormal ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressSubscribeNormal ]]
[[ var ResponseFileName = ResponseFileNameSubscribeNormal ]]
[[ let LastActionDate = MyNow ]]
[[ let LastAction = "Subscription Pending" ]]
[[ endif ]]
[[ rem End of processing: subscription request and not a subscriber ]]
[[ else ]]
[[ rem requester is ALREADY a subscriber ]]
[[ rem NOTE: do not update name ]]
[[ var DisplayConfirmationCode = " " ]]
[[ var HeaderSubjectMain = HeaderSubjectMainSubscribeKept ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressSubscribeKept ]]
[[ var ResponseFileName = ResponseFileNameSubscribeKept ]]
[[ endif ]]
[[ rem End of processing: subscription request and found in DB ]]
[[ endif ]]
[[ rem Grab all Prior values in case needed ]]
[[ rem adjust them as necessary ]]
[[ var PriorFullEmailAddress = FullEmailAddress ]]
[[ var PriorSubscribeSource = SubscribeSource ]]
[[ if PriorSubscribeSource = "Web Form" ]]
[[ var PriorLastSubscribeDateTag = "Web Mail Time" ]]
[[ else ]]
[[ var PriorLastSubscribeDateTag = "Email Time" ]]
[[ endif ]]
[[ var PriorLastSubscribeDate = LastSubscribeDate ]]
[[ if SubscribeEmail != "Not Recorded" ]]
[[ var PriorSubscribeEmail = SubscribeEmail ]]
[[ else ]]
[[ var PriorSubscribeEmail = FullEmailAddress ]]
[[ endif ]]
[[ var PriorSubscribeIPAddress = SubscribeIPAddress ]]
[[ var PriorLastActionDate = LastActionDate ]]
[[ var PriorSubscribeConfirmEmail = SubscribeConfirmEmail ]]
[[ var PriorSubscribeConfirmIPAddress = SubscribeConfirmIPAddress ]]
[[ var PriorSubscribeConfirmDate = SubscribeConfirmDate ]]
[[ rem Update only if a Good Subscription Request ]]
[[ if GoodSubscriptionRequest ]]
[[ let FullEmailAddress = RecipientMod ]]
[[ let ConfirmationAction = "S" ]]
[[ let ConfirmationNumber = RandomString ]]
[[ let ConfirmationResendCount = 0 ]]
[[ let LastConfirmationResendDate = MyNow ]]
[[ var ConfirmationCode = "[c-" + RandomString + "-" + EmailLC + "]" ]]
[[ var DisplayConfirmationCode = ConfirmationCode ]]
[[ var PriorSubscribeSource = SubscribeSource ]]
[[ let SubscribeSource = EmailVia ]]
[[ if PriorSubscribeSource = "Web Form" ]]
[[ var PriorLastSubscribeDateTag = "Web Mail Time" ]]
[[ else ]]
[[ var PriorLastSubscribeDateTag = "Email Time" ]]
[[ endif ]]
[[ Var PriorLastSubscribeDate = LastSubscribeDate ]]
[[ let LastSubscribeDate = EmailDateStr ]]
[[ var PriorSubscribeEmail = SubscribeEmail ]]
[[ let SubscribeEmail = RecipientMod ]]
[[ var PriorSubscribeIPAddress = SubscribeIPAddress ]]
[[ let SubscribeIPAddress = IPAddress ]]
[[ var PriorLastActionDate = LastActionDate ]]
[[ let LastActionDate = MyNow ]]
[[ if -FullName- != NULL ]]
[[ rem This is a good sub request ]]
[[ rem AND the "name" also has data ]]
[[ rem SO ... update last, first and middle names ]]
[[ let LastName = LastNameMod ]]
[[ let FirstName = FirstNameMod ]]
[[ let MiddleName = MiddleNameExtracted ]]
[[ let Notes = "A>" + -FullName- + "< L>" + -LastName- + "< F>" + -FirstName- + "< M>" + MiddleName + "<" ]] [[ endif ]] [[ endif ]] [[ var UseCommonEndProcess = TRUE ]] [[ endif ]] [[ log("After Process Subscribe Request"+CR) ]] [[ rem ---------- end of process subscribe request ---------- ]] [[ rem ========== PROCESS CONFIRM REQUEST ========== ]] [[ if ConfirmRequest ]] [[ log("Process Confirm Request"+CR) ]] [[ log("process confirm"+CR) ]] [[ var GoodConfirmFromSubject = FALSE ]] [[ var GoodConfirmFromBody = FALSE ]] [[ var GoodConfirmFormat = TRUE ]] [[ var GoodSubscriptionConfirmRequest = FALSE ]] [[ if ConfirmInSubject ]] [[ rem Extract confirmation from the Subject ]] [[ rem Find the start of the Confirmation String: "[c-" ]] [[ var ConfirmLoc = str_find(SubjectPackedLC, "[c-", 0) ]] [[ var ConfirmationCodeFromSubject = str_substring(SubjectPackedLC, ConfirmLoc, 999) ]] [[ var ConfirmationCodeFromSubject = str_trim(ConfirmationCodeFromSubject) ]] [[ var ConfirmationCodeFromBody = str_trim(ConfirmationCodeFromBody) ]] [[ rem Check the format of the Confirmation Code from the Subject ]] [[ rem Find the end of the Confirmation String: "]" ]] [[ var ConfirmationCodeStop = str_find(ConfirmationCodeFromSubject, "]", 0) ]] [[ rem Check the format of the confirmation string ]] [[ If str_substring(ConfirmationCodeFromSubject, 13, 1) != "-"or ConfirmationCodeStop = -1 ]] [[ log("bad confirm format for confirmation code from subject"+CR) ]] [[ else ]] [[ log("good confirm format for confirmation code from subject"+CR) ]] [[ var ConfirmationCodeIn = ConfirmationCodeFromSubject ]] [[ var ConfirmationCodeInSource = "Email Subject" ]] [[ var ConfirmStr = str_substring(ConfirmationCodeFromSubject, 3, 10) ]] [[ var RequestEmailLength = ConfirmationCodeStop - 14 ]] [[ var RequestEmail = str_substring(ConfirmationCodeFromSubject, 14, RequestEmailLength) ]] [[ var GoodConfirmFromSubject = TRUE ]] [[ log("ConfirmStr: "+ConfirmStr+CR) ]] [[ log("RequestEmailLength: "+RequestEmailLength+CR) ]] [[ log("RequestEmail: "+RequestEmail+CR) ]] [[ endif ]] [[ endif ]] [[ if !GoodConfirmFromSubject ]] [[ if ConfirmInBody ]] [[ rem Check the format of the Confirmation Code from the Body ]] [[ var ConfirmationCodeIn = ConfirmationCodeFromBody ]] [[ rem Find the end of the Confirmation String: "]" ]] [[ var ConfirmationCodeStop = str_find(ConfirmationCodeFromBody, "]", 0) ]] [[ rem Check the format of the confirmation string ]] [[ If str_substring(ConfirmationCodeFromBody, 13, 1) != "-" or ConfirmationCodeStop = -1 ]] [[ log("bad confirm format for confirmation code from body"+CR) ]] [[ else ]] [[ log("good confirm format for confirmation code from body"+CR) ]] [[ var ConfirmationCodeIn = ConfirmationCodeFromBody ]] [[ var ConfirmationCodeInSource = "Email Body" ]] [[ var ConfirmStr = str_substring(ConfirmationCodeFromBody, 3, 10) ]] [[ var RequestEmailLength = ConfirmationCodeStop - 14 ]] [[ var RequestEmail = str_substring(ConfirmationCodeFromBody, 14, RequestEmailLength) ]] [[ var GoodConfirmFromBody = TRUE ]] [[ log("ConfirmStr: "+ConfirmStr+CR) ]] [[ log("RequestEmailLength: "+RequestEmailLength+CR) ]] [[ log("RequestEmail: "+RequestEmail+CR) ]] [[ endif ]] [[ endif ]] [[ endif ]] [[ if !GoodConfirmFromSubject and !GoodConfirmFromBody ]] [[ log("Bad Format"+CR) ]] [[ rem The confirm string is not in the proper format. ]] [[ rem The second dash is not positioned properly. ]] [[ rem or no terminal "]" could be found. ]] [[ var GoodConfirmFormat = FALSE ]] [[ var ConfirmDBRecordFound = FALSE ]] [[ var DisplayRequestEmail = "*~* Unknown *~*" ]] [[ var ConfirmationCodeIn = "*~* Unknown *~*" ]] [[ var ConfirmationCodeInSource = "*~* Not Found *~*" ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmBadFormat ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmBadFormat ]] [[ var ResponseFileName = ResponseFileNameConfirmBadFormat ]] [[ var UseCommonEndProcess = TRUE ]] [[ endif ]] [[ endif ]] [[ rem Continue processing confirm request if the Confirmation String was ok ]] [[ if ConfirmRequest and GoodConfirmFormat ]] [[ log("continue confirm"+CR) ]] [[ var RequestEmailLC = convert_lower_case(RequestEmail) ]] [[ var DisplayRequestEmail = RequestEmail ]] [[ rem See if the email was sent by the same address as is being confirmed ]] [[ if EmailLC != RequestEmailLC ]] [[ var ConfirmDoubleResponse = TRUE ]] [[ endif ]] [[rem Check to see if the confirmation address is in the database ]] [[ log("check for confirm addr in the db"+CR) ]] [[ if !db_acquire_row(RequestEmailLC) ]] [[ rem Address is NOT in the database; address not found ]] [[ log("addr not found in the db"+CR) ]] [[ var ConfirmDBRecordFound = FALSE ]] [[ var PriorSubscribeSource = "N/A - Subscription Request Not Found" ]] [[ var PriorLastSubscribeDateTag = "Request Time" ]] [[ var PriorLastSubscribeDate = "N/A - Subscription Request Not Found" ]] [[ var PriorSubscribeIPAddress = "N/A - Subscription Request Not Found" ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmNotFound ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmNotFound2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmNotFound1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmNotFound ]] [[ else ]] [[ rem Confirm for address that WAS found ]] [[ log("addr WAS found in the db"+CR) ]] [[ var ConfirmDBRecordFound = TRUE ]] [[ rem Grab all Prior values in case needed ]] [[ rem adjust them as necessary ]] [[ var PriorFullEmailAddress = FullEmailAddress ]] [[ var PriorSubscribeSource = SubscribeSource ]] [[ if PriorSubscribeSource = "Web Form" ]] [[ var PriorLastSubscribeDateTag = "Web Mail Time" ]] [[ else ]] [[ var PriorLastSubscribeDateTag = "Email Time" ]] [[ endif ]] [[ var PriorLastSubscribeDate = LastSubscribeDate ]] [[ if SubscribeEmail != "Not Recorded" ]] [[ var PriorSubscribeEmail = SubscribeEmail ]] [[ else ]] [[ var PriorSubscribeEmail = FullEmailAddress ]] [[ endif ]] [[ var PriorSubscribeIPAddress = SubscribeIPAddress ]] [[ var PriorLastActionDate = LastActionDate ]] [[ var PriorSubscribeConfirmEmail = SubscribeConfirmEmail ]] [[ var PriorSubscribeConfirmIPAddress = SubscribeConfirmIPAddress ]] [[ var PriorSubscribeConfirmDate = SubscribeConfirmDate ]] [[ rem Process Confirm for Subscription ]] [[ if ConfirmationAction = "S" ]] [[ rem Confirm is for a subscription ]] [[ log("ConfirmationAction is S"+CR) ]] [[ log("ConfirmationNumber"+" " + ConfirmationNumber + CR) ]] [[ log("ConfirmStr"+" " + ConfirmStr + CR) ]] [[ if ConfirmationNumber != " " and ConfirmationNumber != "" and ConfirmationNumber != ConfirmStr ]] [[ rem Confirm is for a subscription but code doesn't match ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmSubMismatch ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubMismatch2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubMismatch1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmSubMismatch ]] [[ else ]] [[rem Confirm is for a subscription and code matches ]] [[ var GoodSubscriptionConfirmRequest = TRUE ]] [[ rem Activate subscription ]] [[ let SubscriberStatus = TRUE ]] [[ let SubscribeConfirmDate = EmailDateStr ]] [[ let SubscribeConfirmEmail = RecipientMod ]] [[ let SubscribeConfirmIPAddress = IPAddress ]] [[ let ConfirmationNumber = "" ]] [[ let ConfirmationAction = "" ]] [[ rem If this request is NOT a double response ]] [[ rem that is, if the confirmation sender matches the subscriber ]] [[ rem then update the name info ]] [[ if !ConfirmDoubleResponse ]] [[ let FullEmailAddress = RecipientMod ]] [[ let LastName = LastNameMod ]] [[ let FirstName = FirstNameMod ]] [[ let MiddleName = MiddleNameExtracted ]] [[ let Notes = "A>" + -FullName- + "< L>" + -LastName- + "< F>" + -FirstName- + "< M>" + MiddleName + "<" ]] [[ endif ]] [[ var PriorLastActionDate = LastActionDate ]] [[ let LastActionDate = MyNow ]] [[ let LastAction = "Confirmed Subscription" ]] [[ rem Response to reflect success status ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmSubSuccess ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubSuccess2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubSuccess1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmSubSuccess ]] [[ endif ]] [[ elseif ConfirmationAction = "F" ]] [[ log("ConfirmationAction is F"+CR) ]] [[ rem Confirm is for a Force Confirm ]] [[ if ConfirmationNumber != ConfirmStr ]] [[ rem Confirm is for a Force Confirm but code doesn't match ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmForceMismatch ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmForceMismatch2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmForceMismatch1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmForceMismatch ]] [[ else ]] [[rem Confirm is for a Force Confirm and code matches ]] [[ var GoodSubscriptionConfirmRequest = TRUE ]] [[ rem Activate subscription ]] [[ let SubscriberStatus = TRUE ]] [[ let SubscribeConfirmDate = EmailDateStr ]] [[ let SubscribeConfirmEmail = RecipientMod ]] [[ let SubscribeConfirmIPAddress = IPAddress ]] [[ let ConfirmationNumber = "" ]] [[ let ConfirmationAction = "" ]] [[ rem If this request is NOT a double response ]] [[ rem that is, if the confirmation sender matches the subscriber ]] [[ rem then update the name info ]] [[ if !ConfirmDoubleResponse ]] [[ let FullEmailAddress = RecipientMod ]] [[ let LastName = LastNameMod ]] [[ let FirstName = FirstNameMod ]] [[ let MiddleName = MiddleNameExtracted ]] [[ let Notes = "A>" + -FullName- + "< L>" + -LastName- + "< F>" + -FirstName- + "< M>" + MiddleName + "<" ]] [[ endif ]] [[ var PriorLastActionDate = LastActionDate ]] [[ let LastActionDate = MyNow ]] [[ let LastAction = "Confirmed Subscription" ]] [[ rem Response to reflect success status ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmForceSuccess ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmForceSuccess2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmForceSuccess1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmForceSuccess ]] [[ endif ]] [[ elseif ConfirmationAction = "U" ]] [[ log("ConfirmationAction is U"+CR) ]] [[ rem Confirm is for a web based unsubscription ]] [[ if ConfirmationNumber != ConfirmStr ]] [[ rem Confirm is for an unsubcription but code doesn't match ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmUnsubMismatch ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmUnsubMismatch2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmUnsubMismatch1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmUnsubMismatch ]] [[ else ]] [[rem Confirm is for an unsubscription and code matches ]] [[ rem Deactivate subscription ]] [[ let SubscriberStatus = FALSE ]] [[ let UnsubscribeReason = "Unsub Confirmed" ]] [[ let UnsubscribeConfirmDate = EmailDateStr ]] [[ let UnsubscribeSource = EmailVia ]] [[ let UnsubscribeConfirmEmail = RecipientMod ]] [[ let UnsubscribeConfirmIPAddress = IPAddress ]] [[ let ConfirmationNumber = "" ]] [[ let ConfirmationAction = "" ]] [[ let LastActionDate = MyNow ]] [[ let LastAction = "Confirmed Unsubscription" ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmUnsubSuccess ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmUnsubSuccess2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmUnsubSuccess1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmUnsubSuccess ]] [[ endif ]] [[ else ]] [[ log("ConfirmationAction is not S, F or U"+CR) ]] [[ rem Confirm is for someone without any pending action ]] [[ if SubscriberStatus = TRUE ]] [[ rem Confirm for existing subscriber ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmSubKept ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubKept2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmSubKept1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmSubKept ]] [[ else ]] [[ rem Confirm for former subscriber with no pending actions ]] [[ rem Even though found, report as not found ]] [[ var HeaderSubjectMain = HeaderSubjectMainConfirmNotFound ]] [[ if ConfirmDoubleResponse ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmNotFound2 ]] [[ else ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressConfirmNotFound1 ]] [[ endif ]] [[ var ResponseFileName = ResponseFileNameConfirmNotFound ]] [[ endif ]] [[ endif ]] [[ endif ]] [[ var UseCommonEndProcess = TRUE ]] [[ endif ]] [[ log("After Process Confirm Request"+CR) ]] [[ rem ---------- end of process confirm request ---------- ]] [[ rem ========== PROCESS UNSUBSCRIBE REQUEST ========== ]] [[ if UnsubscribeRequest ]] [[ log("Process Unsubscribe Request"+CR) ]] [[ var UnsubSuccessful = FALSE ]] [[ if !db_acquire_row(EmailLC) ]] [[ rem Record is NOT in the database ]] [[ var DisplayConfirmationCode = "N/A - No Subscription Was Found" ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubNotSubbed ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubNotSubbed ]] [[ var ResponseFileName = ResponseFileNameUnsubNotSubbed ]] [[ else ]] [[ rem Record WAS found in the database ]] [[ rem Grab all Prior values in case needed ]] [[ rem adjust them as necessary ]] [[ var PriorFullEmailAddress = FullEmailAddress ]] [[ var PriorSubscribeSource = SubscribeSource ]] [[ if PriorSubscribeSource = "Web Form" ]] [[ var PriorLastSubscribeDateTag = "Web Mail Time" ]] [[ else ]] [[ var PriorLastSubscribeDateTag = "Email Time" ]] [[ endif ]] [[ var PriorLastSubscribeDate = LastSubscribeDate ]] [[ if SubscribeEmail != "Not Recorded" ]] [[ var PriorSubscribeEmail = SubscribeEmail ]] [[ else ]] [[ var PriorSubscribeEmail = FullEmailAddress ]] [[ endif ]] [[ var PriorSubscribeIPAddress = SubscribeIPAddress ]] [[ var PriorLastActionDate = LastActionDate ]] [[ var PriorSubscribeConfirmEmail = SubscribeConfirmEmail ]] [[ var PriorSubscribeConfirmIPAddress = SubscribeConfirmIPAddress ]] [[ var PriorSubscribeConfirmDate = SubscribeConfirmDate ]] [[ rem Check whether is a subscriber ]] [[ log("Unsubscribe - Found - Checking whether subscriber"+CR) ]] [[ if SubscriberStatus = FALSE ]] [[ log("Unsubscribe - Found - NOT a subscriber"+CR) ]] [[ rem NOT a subscriber ]] [[ if ConfirmationAction = "S" ]] [[ log("Unsubscribe - Found - NOT a subscriber - S"+CR) ]] [[ rem Unsubscription for a "pending" subscription ]] [[ var UnsubSuccessful = TRUE ]] [[ var PriorSubscribeConfirmEmail = "Subscription was never confirmed" ]] [[ var PriorSubscribeConfirmDate = "Subscription was never confirmed" ]] [[ var PriorSubscribeConfirmIPAddress = "Subscription was never confirmed" ]] [[ var PriorUnsubscribeSource = UnsubscribeSource ]] [[ let UnsubscribeSource = EmailVia ]] [[ if PriorUnsubscribeSource = "Web Form" ]] [[ var PriorUnsubscribeDateTag = "Web Mail Time" ]] [[ else ]] [[ var PriorUnsubscribeDateTag = "Email Time" ]] [[ endif ]] [[ var PriorUnsubscribeDate = UnsubscribeDate ]] [[ let UnsubscribeDate = EmailDateStr ]] [[ var PriorUnsubscribeEmail = UnsubscribeEmail ]] [[ let UnsubscribeEmail = RecipientMod ]] [[ var PriorUnsubscribeIPAddress = UnsubscribeIPAddress ]] [[ let UnsubscribeIPAddress = IPAddress ]] [[ var PriorLastActionDate = LastActionDate ]] [[ let LastActionDate = MyNow ]] [[ let LastAction = "Unsubscribed Pending" ]] [[ let SubscriberStatus = FALSE ]] [[ let ConfirmationAction = "" ]] [[ let ConfirmationNumber = "" ]] [[ let UnsubscribeReason = "Unsub (Cancel) Pending Subscription" ]] [[ let UnsubscribeConfirmDate = EmailDateStr ]] [[ let UnsubscribeConfirmEmail = RecipientMod ]] [[ let UnsubscribeConfirmIPAddress = IPAddress ]] [[ var DisplayConfirmationCode = "N/A - Subscription Was Pending and Never Confirmed" ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubPending ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubPending ]] [[ var ResponseFileName = ResponseFileNameUnsubPending ]] [[ else ]] [[ log("Unsubscribe - Found - NOT a subscriber - Not-S"+CR) ]] [[ rem Unsubscription for a "non-subscription" ]] [[ var DisplayConfirmationCode = "N/A - No Subscription Was Found" ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubNotSubbed ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubNotSubbed ]] [[ var ResponseFileName = ResponseFileNameUnsubNotSubbed ]] [[ endif ]] [[ else ]] [[ rem A Subscriber --- unsubscribe the subscription ]] [[ var UnsubSuccessful = TRUE ]] [[ var PriorUnsubscribeSource = UnsubscribeSource ]] [[ let UnsubscribeSource = EmailVia ]] [[ if PriorUnsubscribeSource = "Web Form" ]] [[ var PriorUnsubscribeDateTag = "Web Mail Time" ]] [[ else ]] [[ var PriorUnsubscribeDateTag = "Email Time" ]] [[ endif ]] [[ var PriorUnsubscribeDate = UnsubscribeDate ]] [[ let UnsubscribeDate = EmailDateStr ]] [[ var PriorUnsubscribeEmail = UnsubscribeEmail ]] [[ let UnsubscribeEmail = RecipientMod ]] [[ var PriorUnsubscribeIPAddress = UnsubscribeIPAddress ]] [[ let UnsubscribeIPAddress = IPAddress ]] [[ var PriorLastActionDate = LastActionDate ]] [[ let LastActionDate = MyNow ]] [[ let LastAction = "Unsubscribe" ]] [[ rem Handle web unsubscribe requests different to email ]] [[ rem Web unsubscribes require a confirmation ]] [[ rem Email unsubscribes are processed immediately ]] [[ if UnsubscribeRequestFromWebForm ]] [[ rem Unsubscription request from the web - requires confirmation ]] [[ let LastAction = "Unsubscribe from Web" ]] [[ rem Check if unsub is alreaday pending ]] [[ if ConfirmationNumber != "" and ConfirmationNumber != NULL ]] [[ rem Unsubscription request is already pending ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubConfirmReset ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubConfirmReset ]] [[ var ResponseFileName = ResponseFileNameUnsubConfirmReset ]] [[ else ]] [[ rem Unsubscription request; not already pending ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubConfirm ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubConfirm ]] [[ var ResponseFileName = ResponseFileNameUnsubConfirm ]] [[ endif ]] [[ let ConfirmationAction = "U" ]] [[ let ConfirmationNumber = RandomString ]] [[ let ConfirmationNumber = RandomString ]] [[ var ConfirmationCode = "[c-" + RandomString + "-" + EmailLC + "]" ]] [[ var DisplayConfirmationCode = ConfirmationCode ]] [[ else ]] [[ rem Unsubscription request from email - unsubscribe immediately ]] [[ let LastAction = "Unsubscribe from Email" ]] [[ let SubscriberStatus = FALSE ]] [[ let ConfirmationAction = "" ]] [[ let ConfirmationNumber = "" ]] [[ let UnsubscribeReason = "Unsub Immediate" ]] [[ let UnsubscribeConfirmDate = EmailDateStr ]] [[ let UnsubscribeConfirmEmail = RecipientMod ]] [[ let UnsubscribeConfirmIPAddress = IPAddress ]] [[ var DisplayConfirmationCode = "No code needed. Email unsubs are processed immediately." ]] [[ var HeaderSubjectMain = HeaderSubjectMainUnsubSuccess ]] [[ var HeaderReplyToAddress = HeaderReplyToAddressUnsubSuccess ]] [[ var ResponseFileName = ResponseFileNameUnsubSuccess ]] [[ endif ]] [[ endif ]] [[ endif ]] [[ var UseCommonEndProcess = TRUE ]] [[ endif ]] [[ log("After Process Unsubscribe Request"+CR) ]] [[ rem ---------- end of process unsubscribe request ---------- ]] [[ rem ========== PROCESS SPAM TEST ========== ]] [[ if SpamTestRequest and RecipientMod != "Diane Walls
[[ log("Process Spam"+CR) ]]
[[ log("Begin SPAMTEST"+CR) ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressSpamTest ]]
[[ var SpamTestEmailNumber = "1" ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + "Spam Test 1.txt" ]]
[[ var SpamTestSender = EzineAdminAddress ]]
[[ var SpamTestSenderPurpose = EzineAdminAddressPurpose ]]
[[ var HeaderSubjectMain = "Spam Test Email #" + SpamTestEmailNumber ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ var HeaderSenderAddress = EzineNameShort + " Spam Test " + SpamTestEmailNumber + " <" + SpamTestSender + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ var SpamTestEmailNumber = "2" ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + "Spam Test 234.txt" ]]
[[ var SpamTestSender = EzineAdminAddress ]]
[[ var SpamTestSenderPurpose = EzineAdminAddressPurpose ]]
[[ var HeaderSubjectMain = "Spam Test Email #" + SpamTestEmailNumber ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ var HeaderSenderAddress = EzineNameShort + " Spam Test " + SpamTestEmailNumber + " <" + SpamTestSender + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ var SpamTestEmailNumber = "3" ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + "Spam Test 234.txt" ]]
[[ var SpamTestSender = EzineDeliveryAddress ]]
[[ var SpamTestSenderPurpose = EzineDeliveryAddressPurpose ]]
[[ var HeaderSubjectMain = "Spam Test Email #" + SpamTestEmailNumber ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ var HeaderSenderAddress = EzineNameShort + " Spam Test " + SpamTestEmailNumber + " <" + SpamTestSender + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ var SpamTestEmailNumber = "4" ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + "Spam Test 234.txt" ]]
[[ var SpamTestSender = EzinePersonalSendAddress ]]
[[ var SpamTestSenderPurpose = EzinePersonalSendAddressPurpose ]]
[[ var HeaderSubjectMain = "Spam Test Email #" + SpamTestEmailNumber ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ var HeaderSenderAddress = EzineNameShort + " Spam Test " + SpamTestEmailNumber + " <" + SpamTestSender + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ var SpamTestEmailNumber = "5" ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + "Spam Test 5.txt" ]]
[[ var SpamTestSender = EzineAdminAddress ]]
[[ var HeaderSubjectMain = "Spam Test Email #" + SpamTestEmailNumber ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ var HeaderSenderAddress = EzineNameShort + " Spam Test " + SpamTestEmailNumber + " <" + SpamTestSender + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ endif ]]
[[ log("AFter Process Spam"+CR) ]]
[[ rem ---------- end of process spam test ---------- ]]
[[ rem ========== PROCESS UNKNOWN ========== ]]
[[ if UnknownRequest ]]
[[ log("Process Unknown Request"+CR) ]]
[[ rem Reply to the sender with the "Unprocessed" message ]]
[[ rem and copy me ]]
[[ log("Processing the UnknownRequest"+CR) ]]
[[ if str_contains_i(IncomingAddresseeLC, EzineAdminAddress) ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressAdminUnknown ]]
[[ var ResponseFileName = ResponseFileNameAdminUnknown ]]
[[ elseif str_contains_i(IncomingAddresseeLC, EzineDeliveryAddress) ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressDeliveryUnknown ]]
[[ var ResponseFileName = ResponseFileNameDeliveryUnknown ]]
[[ else ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressUnknownUnknown ]]
[[ var ResponseFileName = ResponseFileNameUnknownUnknown ]]
[[ endif ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + ResponseFileName ]]
[[ rem var HeaderSenderAddress = SenderAddressText + " <" + EzineAdminAddress + ">" ]]
[[ var HeaderSenderAddress = HeaderReplyToAddress ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ var HeaderSubjectMain = HeaderSubjectMainUnknownForward + " [*** " + -Subject- + " ***]" ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ rem end of UnknownRequest processing ]]
[[ endif ]]
[[ log("After Unknown Request"+CR) ]]
[[ rem ---------- end of process unknown ---------- ]]
[[ rem ========== COMMON END PROCESS ========== ]]
[[ if UseCommonEndProcess ]]
[[ log("Begin Common End Process"+CR) ]]
[[ rem Append the main subject with the confirmation code ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain + " " + ConfirmationCode ]]
[[ rem Expand the Response File Name by prepending the base path ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + ResponseFileName ]]
[[ rem Use the RecipientMod to send the email ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ rem If this is a confirm request from a second email address, ]]
[[ rem send the second email ]]
[[ if ConfirmDoubleResponse ]]
[[ rem Where to send it to depends . . . ]]
[[ rem on whether the record was found in the DB ]]
[[ if ConfirmDBRecordFound ]]
[[ rem Record found: use the data from the record ]]
[[ let -Recipient- = FullEmailAddress ]]
[[ else ]]
[[ rem Record NOT found: use the data from the confirmation request record ]]
[[ let -Recipient- = RequestEmail ]]
[[ endif ]]
[[ rem Send the second email ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ endif ]]
[[ endif ]]
[[ rem ---------- end of common end process ---------- ]]
[[ rem ========== PROCESS WHITELIST INFO REQUEST ========== ]]
[[ rem NB: Good Subscription Requests and Good Subscription Confirmation Requests ]]
[[ rem are also processed by this section ]]
[[ if WhitelistInfoRequest or GoodSubscriptionRequest or GoodSubscriptionConfirmRequest ]]
[[ log("Before Whitelist Info Admin"+CR) ]]
[[ if MailwasherRequest ]]
[[ var WhitelistSummary1Text = "You have requested Mailwasher Whitelist Information for " + EzineNameAndDescription + ". This email provides that information." ]]
[[ elseif WhitelistInfoRequest ]]
[[ var WhitelistSummary1Text = "You have requested Whitelist Information for " + EzineNameAndDescription + ". This email provides that information." ]]
[[ elseif ConfirmRequest ]]
[[ var WhitelistSummary1Text = "You have confirmed a subscription to " + EzineNameAndDescription + ". This email provides extra information about 'Whitelisting' addresses to ensure your ISP and Spam Filters do not block our mailings." ]]
[[ else ]]
[[ rem presume it is a subscription request ]]
[[ var WhitelistSummary1Text = "You have requested a subscription to " + EzineNameAndDescription + ". This email provides extra information about 'Whitelisting' addresses to ensure your ISP and Spam Filters do not block our mailings." ]]
[[ endif ]]
[[ var HeaderReplyToAddress = HeaderReplyToAddressWhitelist ]]
[[ var ISPFound = TRUE ]]
[[ var ISPSpecific = TRUE ]]
[[ if DomainNameLC = "aol.com" ]]
[[ var ResponseFileName = "Whitelist AOL.txt" ]]
[[ var ISPName = "AOL" ]]
[[ elseif DomainNameLC = "comcast.net" ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "Comcast" ]]
[[ var ISPSpecific = FALSE ]]
[[ elseif DomainNameLC = "att.net" or DomainNameLC = "worldnet.att.net" ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "AT&T Worldnet" ]]
[[ var ISPSpecific = FALSE ]]
[[ elseif DomainNameLC = "earthlink.net" ]]
[[ var ResponseFileName = "Whitelist Earthlink.txt" ]]
[[ var ISPName = "Earthlink" ]]
[[ elseif DomainNameLC = "gmail.com" ]]
[[ var ResponseFileName = "Whitelist GMail.txt" ]]
[[ var ISPName = "GMail" ]]
[[ elseif DomainNameLC = "hotmail.com" ]]
[[ var ResponseFileName = "Whitelist Hotmail.txt" ]]
[[ var ISPName = "Hotmail" ]]
[[ elseif DomainNameLC = "mindspring.com" ]]
[[ var ResponseFileName = "Whitelist Earthlink.txt" ]]
[[ var ISPName = "Earthlink (Mindspring)" ]]
[[ elseif DomainNameLC = "msn.com" ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "MSN" ]]
[[ var ISPSpecific = FALSE ]]
[[ elseif DomainNameLC = "myvzw.com" ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "Verizon Wireless" ]]
[[ var ISPSpecific = FALSE ]]
[[ elseif DomainNameLC = "sbcglobal.net" ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "SBC" ]]
[[ var ISPSpecific = FALSE ]]
[[ elseif DomainNameLC = "sprintmail.com" ]]
[[ var ResponseFileName = "Whitelist Earthlink.txt" ]]
[[ var ISPName = "Earthlink (SprintMail)" ]]
[[ elseif DomainNameLC = "yahoo.com" ]]
[[ var ResponseFileName = "Whitelist Yahoo.txt" ]]
[[ var ISPName = "Yahoo" ]]
[[ elseif MailwasherRequest ]]
[[ var ResponseFileName = "Whitelist Mailwasher.txt" ]]
[[ var ISPName = "Mailwasher" ]]
[[ else ]]
[[ var ResponseFileName = "BOOGER" ]]
[[ var ISPName = "BOOGER" ]]
[[ var ISPFound = FALSE ]]
[[ var ISPSpecific = FALSE ]]
[[ var ResponseFileName = "Whitelist General.txt" ]]
[[ endif ]]
[[ var ThreeEmails = FALSE ]]
[[ if DomainNameLC = "aol.com" or MailwasherRequest ]]
[[ var ThreeEmails = TRUE ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + ResponseFileName ]]
[[ var HeaderSubject1 = "Please Whitelist This Address in " + ISPName + " - " ]]
[[ var EzineWhitelistAddress = EzineAdminAddress ]]
[[ var EzineWhitelistAddressPurpose = EzineAdminAddressPurpose ]]
[[ var HeaderSenderAddress = SenderAddressText + " <" + EzineWhitelistAddress + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ var HeaderSubjectMain = HeaderSubject1 + EzineWhitelistAddress ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ rem If this is a confirm request from a second email address, ]]
[[ rem send the second email ]]
[[ if ConfirmDoubleResponse ]]
[[ rem Where to send it to depends . . . ]]
[[ rem on whether the record was found in the DB ]]
[[ if ConfirmDBRecordFound ]]
[[ rem Record found: use the data from the record ]]
[[ let -Recipient- = FullEmailAddress ]]
[[ else ]]
[[ rem Record NOT found: use the data from the confirmation request record ]]
[[ let -Recipient- = RequestEmail ]]
[[ endif ]]
[[ rem Send the second email ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ endif ]]
[[ var EzineWhitelistAddress = EzineDeliveryAddress ]]
[[ var EzineWhitelistAddressPurpose = EzineDeliveryAddressPurpose ]]
[[ var HeaderSenderAddress = SenderAddressText + " <" + EzineWhitelistAddress + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ var HeaderSubjectMain = HeaderSubject1 + EzineWhitelistAddress ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ rem If this is a confirm request from a second email address, ]]
[[ rem send the second email ]]
[[ if ConfirmDoubleResponse ]]
[[ rem Where to send it to depends . . . ]]
[[ rem on whether the record was found in the DB ]]
[[ if ConfirmDBRecordFound ]]
[[ rem Record found: use the data from the record ]]
[[ let -Recipient- = FullEmailAddress ]]
[[ else ]]
[[ rem Record NOT found: use the data from the confirmation request record ]]
[[ let -Recipient- = RequestEmail ]]
[[ endif ]]
[[ rem Send the second email ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ endif ]]
[[ var EzineWhitelistAddress = EzinePersonalSendAddress ]]
[[ var EzineWhitelistAddressPurpose = EzinePersonalSendAddressPurpose ]]
[[ var HeaderSenderAddress = SenderAddressText + " <" + EzineWhitelistAddress + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ var HeaderSubjectMain = HeaderSubject1 + EzineWhitelistAddress ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ var ResponseFileName = "Whitelist General.txt" ]]
[[ endif ]]
[[ if ISPSpecific ]]
[[ var HeaderSubjectMain = "Please Whitelist These Addresses in " + ISPName ]]
[[ else ]]
[[ var HeaderSubjectMain = "Please Whitelist These Addresses (Long 'General' Info)" ]]
[[ var ResponseFileName = "Whitelist General.txt" ]]
[[ endif ]]
[[ var LoopAgain = TRUE ]]
[[ while LoopAgain ]]
[[ var ResponseFileNameFull = GeneralTextFileBase + ResponseFileName ]]
[[ var HeaderSenderAddress = SenderAddressText + " <" + EzineAdminAddress + ">" ]]
[[ var HeaderFromAddress = HeaderSenderAddress ]]
[[ var HeaderSubject = EzineSubjectTag + " " + HeaderSubjectMain ]]
[[ let -Recipient- = RecipientMod ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ rem If this is a confirm request from a second email address, ]]
[[ rem send the second email ]]
[[ if ConfirmDoubleResponse ]]
[[ rem Where to send it to depends . . . ]]
[[ rem on whether the record was found in the DB ]]
[[ if ConfirmDBRecordFound ]]
[[ rem Record found: use the data from the record ]]
[[ let -Recipient- = FullEmailAddress ]]
[[ else ]]
[[ rem Record NOT found: use the data from the confirmation request record ]]
[[ let -Recipient- = RequestEmail ]]
[[ endif ]]
[[ rem Send the second email ]]
[[ var DisplayRecipient = -Recipient- ]]
[[ incoming_autorespond() ]]
[[ rem Conditionally copy me ]]
[[ if CopyToMe ]]
[[ let -Recipient- = AddressToCopyMe ]]
[[ incoming_autorespond() ]]
[[ endif ]]
[[ endif ]]
[[ if ResponseFileName = "Whitelist General.txt" ]]
[[ var LoopAgain = FALSE ]]
[[ else ]]
[[ var ResponseFileName = "Whitelist General.txt" ]]
[[ var HeaderSubjectMain = "Please Whitelist These Addresses (Long 'General' Info)" ]]
[[ endif ]]
[[ endw ]]
[[ rem end of processing ]]
[[ endif ]]
[[ rem ---------- end of process whitelist info request ---------- ]]
[[ rem ========== DELETE THE INCOMING RECORD FROM THE POP FILE ========== ]]
[[ incoming_delete(TRUE) ]]
[[ rem ---------- end of delete the incoming record from the pop file ---------- ]]
[[ rem
KNOWN ISSUES:
1. middle name extraction
doesn't work on names like John Billy Bob Billy. The first "Billy" terminates the search for a middle name.
]]