Hi
komplizierter Betreff, ich gebs ja zu 
Ich bin wahrscheinlich nicht der Einzigste, der beispielsweise bei E-Plus die Email-SMS Notification zum mal schnell ne Nachricht verschicken benutzt. Je länger die Nachrichten aber werden, desto umständlicher wird die ganze Sache. Deswegen hab ich jetzt grad mal ein kleines Perl Scriptchen geschrieben, dass einen beliebig langen Text in mehrere Häppchen zerlegt und die Teile einzeln an eine Email Addi schicken.
Ich überleg jetzt nur die ganze Zeit, ob ich den Link veröffentlichen soll, weil man damit natürlich auch Schabernack treiben könnte. Deswegen folgender Vorschlag: Wer es mal ausprobieren möchte, soll mir eine PN schicken, dann gibts den Link und das Passwort.
Prinzipiell sollte es möglich sein, das Teil auf jedem Webspace zu betreiben, der Perl Unterstützung besitzt. Lediglich Sendmail ist dann noch nötig, das sollte aber Standard sein.
Hier ist der Code (der gewiss keinen Schönheitspreis gewinnt, aber egal
#################################################
# Copyright 2003 The_spY #
# EMail: [email]The-spY@The-spY.de[/email] #
# URL : [url]www.The-spY.de[/url] #
################################################
# Reads in GET or POST data, converts it to unescaped text, and puts
# key/value pairs in %in, using "\0" to separate multiple selections
local($namebuffer,$valuebuffer);
if ($ENV{'REQUEST_METHOD'} eq "GET") { $buffer = $ENV{'QUERY_STRING'}; }
else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
@nvpairs = split(/&/,$buffer);
($namebuffer, $valuebuffer) = split(/=/, $pair);
$valuebuffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$in{$namebuffer}=$valuebuffer;
# Returns the magic line which tells WWW that we're an HTML document
return "Content-type: text/html\n\n";
# Returns the <head> of a document and the beginning of the body
# with the title and a body <h1> header as specified by the parameter
local ($HTMLTOP_input) = @_;
local ($HTMLTOP_title, $HTMLTOP_body, $HTMLTOP_kopf);
($HTMLTOP_title,$HTMLTOP_body, $HTMLTOP_kopf)=split(/,/,$HTMLTOP_input);
if ($HEADER) {print(&PrintHeader);}
print ("<TITLE>$HTMLTOP_title</TITLE>\n");
# print ("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"style.css\">\n");
print ("<BODY BGCOLOR=CCFFFF>");
# Returns the </body>, </html> codes for the bottom of every HTML page
print ("</body>\n</html>\n");
# Splits a multi-valued parameter into a list of the constituent parameters
local (@params) = split ("\0", $param);
return (wantarray ? @params : $params[0]);
# Return true if this cgi call was using the GET request, false otherwise
return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "GET");
# Return true if this cgi call was using the POST request, false otherwise
return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "POST");
# Main Programm ############################################################
# This calls a routine, which gets all variables, which was passed down the
# net to us and write them in a sepcial kind of array.
$|=1; # ungepufferte ausgabe einschalten
if ($modus) ## mail senden
if ($password ne 'meinPasswort') ## hier das passwort rein
print "Falsches Passwort, cia!";
if (!$name || !$email || !$text)
print "Nicht alles ausgefüllt, cia!";
@words = split (/ /,$text);
$maxCount = 100; ## anzahl der zeichen, die max übertragen werden sollen
$realMaxCount = $maxCount - 4; ## - 4 wegen status vornedran
for ($i=0;$i<@words;$i++)
if ($counter + length($words[$i]) + 1 <= $realMaxCount) ## passt noch
$counter = $counter + length($words[$i]) + 1; # + 1 wegen leerzeichen
$betreff[$j] = $betreff[$j].$words[$i]." ";
$i = $i-1; ## passt ja nicht, deswegen eins zurück
$Mailprogramm = "/usr/lib/sendmail";
$SenderName = $name.$at.'Mailer.The-spY.de';
$anzahlBetreffs = @betreff;
for ($j=0;$j<@betreff;$j++)
$betreff[$j] = $index.'/'.$anzahlBetreffs.' '.$betreff[$j];
print "Verschicke mail: $betreff[$j]<br>";
$MailSubject = $betreff[$j];
open(MAIL,"|$Mailprogramm -t") || print "fehler mail";
print MAIL "To: $Empfaenger\n";
print MAIL "From: $SenderName\n";
print MAIL "Subject: $MailSubject\n\n";
<form action=mailer.pl method=post>
<input type=hidden name=modus value=send>
<input type=text size=40 name=name> Von (Name)<br>
<input type=text size=40 name=email> An (E-Mail)<br>
<textarea rows=10 cols=50 name=text></textarea> Text<br>
<input type=password size=40 name=pwd>Passwort<br>
Beim abschicken wird zwischen jeder Mail eine 5 Sekunden Pause eingelegt, weil es sonst Probleme mit der Reihenfolge geben kann.
# This closes the HTML-Ducument.
# We stop the script here.
Alles anzeigen
Selle, welche schonmal ein Perl Skript laufen hatten, werden wissen was sie damit machen müssen. Das Ding wird dann direkt im cgi-bin Verzeichniss aufgerufen. Irgendwo gibts ne Variable "maxCount". Hier kommt die Anzahl der Übertragegen Zeichen pro Mail rein. Bei E-Plus sinds wohl 100, soweit ich das überprüfen konnte.
Edit: ich vergaß: bei mir hiess das Teil "mailer.pl". Falls ihr einen anderen Namen wählt, muss natürlich das action im Form angepasst werden. Ausserdem solltet ihr, falls das Teil mal bei jemand anderem läuft, vertrauen zu ihm haben. Es wäre auch ohne weiteres möglich, beliebige Kopien des Texts irgendwohin mit zu schicken 
Viel Spass und Cia The-spY