af Jonas Astrup, HTML.dk
Sidst opdateret d. 7. marts 2004
Bemærk:
Pr. 1. maj 2002 er det ikke længere muligt at bruge dette script til at sende SMS til mobiltelefoner på TDC Mobils netværk.
Pr. 10. juni 2002 er det ikke længere muligt at bruge dette script til at sende SMS til mobiltelefoner på Oranges netværk.
Med dette script kan du helt gratis afsende SMS-beskeder, som er længere end de normale 160 tegn, direkte fra dit site.
SMS-senderen er en udvidelse af en normal SMS-sender, derfor henvises til scriptet for den normale SMS-sender for yderligere forklaring af det grundliggende princip.
Denne SMS-sender kan afsende beskeder, som er længere end de normale 160 tegn. Dette gøres ved at opdele længere beskeder, og afsende dem som fortløbende nummererede SMS-beskeder.
Scriptet kræver at du har adgang til at afsende e-mails fra din server/webhotel. I nedenstående kode benyttes AspMail komponenten - hvis du har en anden mail-komponent, skal koden blot rettes som angivet i kommentaren. Se i den forbindelse:
Ellers er scriptet lige til at bruge.
<% ' **************************************************************** ' Dette script kan benyttes gratis, frit, og uden at indhente tilladelse først ' - dog må selve kildekoden ikke distribueres på andre sites end HTML.dk ' Kontakt HTML.dk hvis du er i tvivl ' **************************************************************** %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da"> <head> <title>SMS-sender</title> </head> <body> <% ' Hvis formen ikke er submittet vises formular If Request.Form("nummer") = "" Then %> <h1>Send SMS-besked</h1> <form action="<% =Request.Servervariables("SCRIPT_NAME") %>" method="post"> <fieldset> <legend>Send SMS-besked</legend> <label for="t1">Modtagerens mobilnummer:</label><br /> <input size="20" type="text" name="nummer" id="t1" class="form" /><br /> <label for="t2">Dit navn, e-mail eller nummer:</label><br /> <input size="20" type="text" name="afsender" id="t2" class="form" /><br /> <label for="t3">Besked:</label><br /> <textarea name="besked" rows="5" id="t3" cols="30" class="form"></textarea><br /> <input type="submit" value="Send besked" /> </fieldset> </form> <% ' Ellers sendes SMS Else ' Fjern alle mellemrum i mobilnummeret intNummer = Replace(Request.Form("nummer")," ","") ' Endelser for de enkelte udbydere strMobilix = "@sms.mobilix.dk" strSonofon = "@note.sonofon.dk" strTelia = "@gsm1800.telia.dk" strTDC = "@sms.tdm.dk" strTelefona = "@sms.tdm.dk" ' De første 4 cifre af nummeret til at bestemme udbyder int4cifre = int(left(intNummer,4)) ' Udfra nummerserien bestemmes udbyder (og dermed endelsen) if int4cifre => 2010 and int4cifre =< 2059 then strUdbyder = strTDC elseif int4cifre => 2060 and int4cifre =< 2099 then strUdbyder = strSonofon elseif int4cifre => 2110 and int4cifre =< 2199 then strUdbyder = strTDC elseif int4cifre => 2210 and int4cifre =< 2299 then strUdbyder = strSonofon elseif int4cifre => 2310 and int4cifre =< 2399 then strUdbyder = strTDC elseif int4cifre => 2410 and int4cifre =< 2499 then strUdbyder = strTDC elseif int4cifre => 2510 and int4cifre =< 2539 then strUdbyder = strSonofon elseif int4cifre => 2610 and int4cifre =< 2699 then strUdbyder = strMobilix elseif int4cifre => 2710 and int4cifre =< 2799 then strUdbyder = strMobilix elseif int4cifre => 2810 and int4cifre =< 2899 then strUdbyder = strTelia elseif int4cifre => 2910 and int4cifre =< 2990 then strUdbyder = strTDC elseif int4cifre => 2991 and int4cifre =< 2992 then strUdbyder = strTelefona elseif int4cifre => 2993 and int4cifre =< 2999 then strUdbyder = strTDC elseif int4cifre => 3010 and int4cifre =< 3099 then strUdbyder = strTDC elseif int4cifre => 4010 and int4cifre =< 4049 then strUdbyder = strTDC elseif int4cifre => 4050 and int4cifre =< 4099 then strUdbyder = strSonofon elseif int4cifre => 5000 and int4cifre =< 5999 then strUdbyder = strTDC end if ' Den færdige SMS-adresse strModtagerMail = intNummer & strUdbyder strAfsenderMail = "navn@domæne.dk" ' Indsæt din egen e-mail i denne linie ' Hent værdier fra fomularen og find længden strAfsenderNavn = Request.Form("afsender") strBesked = Request.Form("besked") ' Split beskeden og opdel i flere delbeskeder arrBesked = Split(strBesked," ") For i = 0 to Ubound(arrBesked) intLenMessage = intLenMessage + (Len(arrBesked(i)) + 1) If intLenMessage < (150 - (Len(strAfsenderNavn & strAfsenderMail))) Then strDelBesked = strDelBesked & arrBesked(i) & " " Else arrDelBeskeder = arrDelBeskeder & "###" & strDelBesked intLenMessage = intLenMessage - (Len(strDelBesked)) strDelBesked = arrBesked(i) & " " End If Next arrDelBeskeder = arrDelBeskeder & "###" & strDelBesked arrDelBeskeder = Split(arrDelBeskeder,"###") intBeskeder = Ubound(arrDelBeskeder) For i = 1 to intBeskeder ' ---------------------------------------- ' Udskift eventuelt denne kode hvis anden mailkomponent benyttes ' Start send e-mail med AspMail ' ---------------------------------------- Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = strAfsenderNavn Mailer.FromAddress= strAfsenderMail Mailer.RemoteHost = "din-mailserver.dk" Mailer.AddRecipient strModtagerMail, strModtagerMail Mailer.Subject = "Nr. " & i & "/" & intBeskeder Mailer.BodyText = arrDelBeskeder(i) if Mailer.SendMail then strStatus = strStatus & "<dt>Besked nr. " & i & " af " & intBeskeder strStatus = strStatus & " - afsendt til " & strModtagerMail & ":</dt>" strStatus = strStatus & "<dd style='color:green'>" & arrDelBeskeder(i) & "</dd>" else strStatus = strStatus & "<dt>Besked nr. " & i & " af " & intBeskeder strStatus = strStatus & " - der skete en fejl: " & Mailer.Response & "</dt>" strStatus = strStatus & "<dd style='color:red'>" & arrDelBeskeder(i) & "</dd>" end if Set Mailer = Nothing ' ---------------------------------------- ' Slut send e-mail med AspMail ' ---------------------------------------- Next Response.Write "<h1>Status</h1>" Response.Write "<dl>" & strStatus & "</dl>" End If %> </body> </html>