Tjena
Jag har ett antal mallar för mailutskick sparade i databasen (SQL-Server).
Vidare så har jag gjort en Sub som ska fixa själva mailutskicket.
I Subben så hämtas aktuell mall som ska användas till mailet, kan se ut typ såhär:
Du har begärt dina användaruppgifter från vår sajt:
Anv. namn: %USERNAME%
Lösenord: %PASSWORD%
Använda ovanstående uppgifter för att logga in.
Eftersom innehållet i mailet (%USERNAME% etc.) kan variera mellan mallarna, så vill jag istället spara den data som ska användas i subben och skicka med som en array, typ såhär:
Dim arr(4)
arr(0) = "%USERNAME%"
arr(1) = "Micke"
arr(2) = "%PASSWORD%"
arr(3) = "mitt_passwd"
...för att sedan köra en replace med min mailbody från databasen, för att byta ut "dynamisk" data.
Frågan är, hur gör jag?
Jag har inte hållt på med det här tidigare, så all hjälp tages tacksamt emot!
Med lite sökande och tester kom jag fram till följande:
<%
Function expand(temp, param_array)
If temp = "one" Then
body = "-----------------------------------<br />" &_
"Värde 1: %VAR1% <br />" &_
"Värde 2: %VAR2% <br />" &_
"Värde 3: %VAR3% <br />" &_
"-----------------------------------<br />"
Else
body = "-----------------------------------<br />" &_
"Värde 1: %VAR1% <br />" &_
"Värde 2: %VAR2% <br />" &_
"-----------------------------------<br />"
End If
n = UBound (param_array)
For i = 0 To n/2-1
body = Replace (body, param_array (2*i+1), param_array (2*i+2))
Next
expand = body
End Function
Dim p(10)
p(1) = "%VAR1%"
p(2) = "VALUE1"
p(3) = "%VAR2%"
p(4) = "VALUE2"
p(5) = "%VAR3%"
p(6) = "VALUE3"
Response.Write("<p>Värden:<br />" & expand("one", p) & "</p>")
p(1) = "%VAR1%"
p(2) = "FOO1"
p(3) = "%VAR2%"
p(4) = "FOO2"
Response.Write("<p>Värden:<br />" & expand("two", p) & "</p>")
%>
Det funkar kanon, men, går det är optimera koden, finns det andra, bättre sätt att lösa det på?
Tack!