Avatar billede skadam Nybegynder
01. december 2000 - 14:59 Der er 5 kommentarer og
1 løsning

sms i perl

kan man lave en sms sender i perl. Og er der nogen der evt. ved hvor man kan hente et færdig script, eller har et som jeg kan få.
Avatar billede keysersoze Ekspert
01. december 2000 - 15:25 #1
www.script.dk hvis det SKAL være i perl...

det kan dog være den ikke virker, men det er fordi stien til din sendmail mangler - i mit tilfælde manglede \"$mailprog = \'/usr/sbin/sendmail\';\" i linie 3...
Avatar billede breum Nybegynder
02. december 2000 - 10:38 #2
Hvis du gerne vil kunne forstå hvad der sker og eventuelt lære noget om perl samtidigt, kan jeg anbefale
webcafes Lav din egen SMS-sender:
den ligger på
http://www.webcafe.dk/perl/artikler/103/pa103.php3
en god beskrivelse medfølger


hvis du kun skal bruge kildeteksten finder du den på
http://www.webcafe.dk/perl/artikler/103/sms.txt
Avatar billede skadam Nybegynder
02. december 2000 - 12:03 #3
Ok www.webcafe.dk er en vinner det er sku fedt tak for det.
Men når jeg køre sms.pl så får jeg følgende fejl:

Script execution error
Unable to execute script due to a configuration problem.
Please notify the webmaster of this error.

exec() returned: 2: No such file or directory

hvad betyder det, scriptet ser så ledes ud.

#!/usr/bin/perl

$mailprogram = \'/usr/sbin/sendmail\';
$baggrund = \"#ffffff\";

### Input bliver læst og delt
read(STDIN, $bufferdrengen, $ENV{\'CONTENT_LENGTH\'});
@data_par = split(/&/, $bufferdrengen);

### De enkelte dele deles op i navn/indhold
foreach $enkelt_par (@data_par) {
  ($navn, $indhold) = split(/=/, $enkelt_par);
 
  ### Indholdet bliver gjort fordøjeligt
  $indhold =~ tr/+/ /;
  $indhold =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(\"C\", hex($1))/eg;
  $indhold =~ s/\\cM\\n/\\n/g;

  ### Vi finder beskedens egentlige indhold, som hedder \'besked=blahblah\'
  if ($navn eq \'besked\') {
    $besked = $indhold;
    $laengde = length($indhold);
  }

  ### Og afsenderen som hedder \'afsender=blahblah\'
  elsif ($navn eq \'afsender\') {
    $afsender = $indhold;
  }

  ### Og modtageren som hedder \'modtager=blahblah\'
  elsif ($navn eq \'modtager\') {
    $modtager_nummer = $indhold;
  }
 
  else {}
 
}

############ Så skal vi have smækket den rigtige adresse på nummeret ###################

### TeleDanmark Mobil - numre
if(20100000<=$modtager_nummer && $modtager_nummer<=20599999 ||
  21100000<=$modtager_nummer && $modtager_nummer<=21999999 ||
  23100000<=$modtager_nummer && $modtager_nummer<=23999999 ||
  24100000<=$modtager_nummer && $modtager_nummer<=24999999 ||
  29100000<=$modtager_nummer && $modtager_nummer<= 29999999 ||
  40100000<=$modtager_nummer && $modtager_nummer<=40499999){
  $modtager = \"$modtager_nummer\\@sms.tdm.dk\";
  $selskab = \"Tele Danmark Mobil\";
  $max = \"600\";
 
  if($laengde>600){
    &for_lang;
  }
 
}

### Sonofon - numre
elsif(20600000<=$modtager_nummer && $modtager_nummer<=20999999 ||
  22100000<=$modtager_nummer && $modtager_nummer<=22999999 ||
  40500000<=$modtager_nummer && $modtager_nummer<=40999999){
  $modtager = \"$modtager_nummer\\@note.sonofon.dk\";
  $selskab = \"SonofonGodaften\";
  $max = \"800\";
 
  if($laengde>800){
    &for_lang;
  }
 
}

### Mobilix - numre
elsif(26100000<=$modtager_nummer && $modtager_nummer<=26999999){
$modtager = \"$modtager_nummer\\@sms.mobilix.dk\";
$selskab = \"Mobilix\";
$max = \"160\";

  if($laengde>160){
    &for_lang;
  }
 
}

### Telia - numre
elsif(28100000<=$modtager_nummer && $modtager_nummer<=28999999){
  $modtager = \"$modtager_nummer\\@gsm1800.telia.dk\";
  $selskab = \"Telia\";
  $max = \"160\";
 
  if($laengde>160){
    &for_lang;
  }

} else {
  $fejl=\"ja\";
  &fejl;
}



############ Så er input fordøjet, og vi skal til at sende beskeden ####################


open(MAIL, \"|$mailprogram -t\") || &fejl;
print MAIL \"From: $afsender\\n\";
print MAIL \"To: $modtager\\n\\n\";
print MAIL \"Sendt UDEN ANSVAR fra www.skadam.com: $besked\\n\";
close(MAIL);

print \"<html><body bgcolor=\"Yellow\"><center>\\n\";
print \"content-type:text/html\\n\\n\";
print \"<html><body bgcolor=\\\"$baggrund\\\">\\n\";
print \"Du har sendt SMS til: <b>$modtager_nummer</b><br><br>\\n\";
print \"<b>Besked som er sendt: </b><br><br>$besked\\n\";
print \"</center></body></html>\";
exit;



###################### Fejl ved ikke GSM-numre samt fejl ved Sendmail ##################

sub fejl {

print \"Content-type:text/html\\n\\n\";
print \"<html><body bgcolor=\\\"$baggrund\\\">\\n\";

if($fejl){
  print \"Det valgte nummer $modtager_nummer er
        <b>ikke et GSM-nummer</b>, og kan derfor
        ikke modtage SMS-beskedder.<br><br><br>\\n\";
} else {
  print \"Fejl: <b>$!</b>\\n\";
}

print \"</body></html>\\n\";
exit;

} ### slut fejl

###################### Fejl ved for lange beskedder ####################################

sub for_lang {

print \"Content-type:text/html\\n\\n\";
print \"<html><body bgcolor=\\\"$baggrund\\\">\\n\";
print \"Du har pr\\&oslash\\;vet at sende SMS-besked til nummer $modtager_nummer.<br><br>\\n\";
print \"Vedkommende er <b>kunde hos $selskab</b>, og her kan beskedder kun sendes, hvis de <b>ikke
er l\\&aelig\\;ngere end $max tegn</b>.<br><br>\\n\";
print \"Din besked er $laengde tegn lang.<br><br>\\n\";
print \"<script language=\\\"JavaScript\\\" type=\\\"text/javascript\\\">
<!-- // Til de hel(d/l)ige med JavaScript
document.writeln(\'<a href=\\\"java script:parent.history.back()\\;\\\">Gå tilbage</a> og forkort beskeden.\')\\;
// -->
</script>
<noscript>
Tryk på \'back\'-knappen i din browser, for at forkorte beskeden.
</noscript>\\n\";
print \"</body></html>\";
exit;

} ### slut for_lang


Avatar billede breum Nybegynder
02. december 2000 - 13:10 #4
først skal du checke om
#!/usr/bin/perl

$mailprogram = \'/usr/sbin/sendmail\';

er det samme for din server, ellers skal du ændre disse linier

hvis det er en unix, linux.... og ikke windows skal du også huske at chmod 755 scriptet
Avatar billede skadam Nybegynder
02. december 2000 - 14:00 #5
Tak for hjælpen 15 point til dig breum
Avatar billede breum Nybegynder
03. december 2000 - 00:37 #6
selv tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester