![]() |
perl-mailversand
ich hätt eine bitte an alle programmierer hier
ich bräucht ein script, dass unter übergabe von namen, mailadresse, text und subject ein mail versendet an diese mailadresse. ich hab zwar ein script vorliegen, allerdings ist dies etwas schwer zu verstehen, wenn man keine ahnung davon hat. falls irgendwer zeit dafür hat, könntet ihr so ein script hier posten, wenn möglich mit kommentaren, damit ich das verstehe. in php wärs eine zeile, über perl scheints etwas komplizierter zu sein. |
irgendein formmail.
hier gibt es hunderte: http://cgi.resourceindex.com/Program...rm_Processing/ welches hast du denn, und was ist funkt nicht? gruss, snowman |
#!/usr/bin/perl
################################################# # # # POSTFORM: VERSION 1.0 # # # # Copyright: NETWAY AG # # # ################################################# # Define some constants $mailprog = '/usr/lib/sendmail'; # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Stop people from using subshells to execute commands # Not a big deal when using sendmail, but very important # when using UCB mail (aka mailx). # $value =~ s/~!/ ~!/g; # Uncomment for debugging purposes # print "Setting $name to $value "; $FORM{$name} = $value; } # Now send mail to $recipient open (MAIL, "|$mailprog $FORM{'h_mailto'}") || die "Can't open $mailprog!\n"; print MAIL "From: noreply\@domain.xxx\n"; print MAIL "Subject: $FORM{'h_subject'}\n\n"; foreach $key (sort(keys(%FORM))) { print MAIL "$key: $FORM{$key}\n\n"; } #print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n"; #print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; #print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n"; close (MAIL); if ($FORM{'h_successurl'} ne "") { print "Location: $FORM{'h_successurl'}\n\n"; } else { print "Content-type: text/html\n"; print "The message has been sent! "; print "<A HREF=\"$ENV{'HTTP_REFERER'}\">Back!</A> "; } wie man sieht, von netway programmiert ich bin jetzt grad dabei, es so umzubauen, dass es für mich passt, allerdings hatte ich ständig n internal server error, auch wenn ich das script auf die erste zeile reduziere. hab dann mal probiert, die variablennamen zu ändern, das geht noch, sobald ich aber eigene variablen einbaue, hab ich den error wieder die daten werden von einem formular übertragen. so ungefähr hab ich zwar eine ahnung wies funkt, allerdings sind mir die errors etwas schleierhaft ich post halt mein derzeit modifiziertes auch noch rein: #!/usr/bin/perl # Define some constants $mailprog = '/usr/lib/sendmail'; # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Stop people from using subshells to execute commands # Not a big deal when using sendmail, but very important # when using UCB mail (aka mailx). # $value =~ s/~!/ ~!/g; # Uncomment for debugging purposes # print "Setting $name to $value "; $FORM{$name} = $value; } # Now send mail to $recipient open (MAIL, "|$mailprog $FORM{'mail'}") || die "Can't open $mailprog!\n"; print MAIL "From: $FORM{'senderMail'}\n"; print MAIL "Subject: $FORM{'subject'}\n\n"; print MAIL "$FORM{'text'}\n\n"; #print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n"; #print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; #print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n"; close (MAIL); if ($FORM{'h_successurl'} ne "") { print "Location: $FORM{'h_successurl'}\n\n"; } else { print "Content-type: text/html\n"; print "The message has been sent! "; print "<A HREF=\"$ENV{'HTTP_REFERER'}\">Back!</A> "; } |
ahja, hab ich vergessen, meine version wirft zwar den fehler aus, funkt allerdings (sprich mail wird versendet)
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag