Nyeste it-job

SMS-sender (som kan sende lange beskeder)

af Jonas Astrup, HTML.dk
Sidst opdateret d. 7. marts 2004

Bemærk at dette script ikke længere kan anvendes, da der dels er indført nummerportabilitet mellem teleselskaberne og at teleselskaberne ikke længere tillader gratis afsendelse af SMS via nettet. Scriptet kan dog stadig fungere som inspiration.

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.

Scriptet

<%
 ' ****************************************************************
 ' 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>
Relateret materiale på HTML.dk

Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet