#!/usr/bin/perl ###################################################### # # TellAfriend.pl # # Sends recommendation emails from your website # # License- and contact-information can be found at www.danpromote.dk/int/ # # Copyright 2001 DanPromote # Last modified 01/07/2001 ###################################################### $mailprogram = '/usr/sbin/sendmail'; $from_email = 'thearma@thearma.org'; &parse_form; $resurl = $FORM{'resurl'}; $resurl="../".$resurl; $subject = $FORM{'subject'}; $to_name = $FORM{'to_name'}; $to_email = $FORM{'to_email'}; $from_name = $FORM{'from_name'}; $comment = $FORM{'comment'}; &validate; # Reads the mailtext open(FILE,"tellafriend.txt"); @mailtext=; close FILE; # Substitutes tags in mailtext for($n=0; $n<@mailtext; $n++) { $mailtext[$n] =~ s/##TO_NAME##/$to_name/gi; $mailtext[$n] =~ s/##TO_EMAIL##/$to_email/gi; $mailtext[$n] =~ s/##FROM_NAME##/$from_name/gi; $mailtext[$n] =~ s/##COMMENT##/$comment/gi; } # Calls subroutine to send the mail &mailinfo; print "Location: $resurl\n\n"; exit; sub parse_form { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); if (length($buffer) < 5) { $buffer = $ENV{QUERY_STRING}; } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } } sub validate { $ok=1; if($from_name eq "") { $from_name="One of our visitors"; } if($to_email !~ /\@.+\./) { $ok=0; } if($ok==0) { print "Content-type: text/html\n\n"; print "\n"; print "\n"; print "TellAfriend [error]\n"; print "\n"; print "\n"; print "\n"; print "\n"; exit; } } sub mailinfo { open(MAIL, "|$mailprogram -t") || die "No response from server !\n\n"; print MAIL "From: $from_email\n"; print MAIL "To: $to_email\n"; print MAIL "Subject: $subject\n\n"; print MAIL @mailtext; close(MAIL); }