#!G:/Prg_internet/Perl/bin/perl.exe ############################################################################ # Adresse du serveur smtp (celui de votre provider par exemple) # si smtp = "" alors on utilise sendmail $smtp = ""; # Changer la ligne suivant pour pointer vers le programme sendmail $mailprog = '/usr/sbin/sendmail'; ############################################################################ require "cgi-lib.pl"; &ReadParse(*input); if (&CreerMail == 0) { print "Location: $input{'redirectok'}\n\n"; } else { print "Location: $input{'redirectpasok'}\n\n"; } exit 0; ############################################################################ sub CreerMail { $date = &Date; # préparer mail my $to = $input{'mailto'}; my $mailfrom = $input{'email'}; my $mailsubject = "Cours5 : commentaire d'un visiteur"; my $msg = "Date : $date\n". "Nom : $input{'nom'}\n". "Prénom : $input{'prenom'}". "Rue : $input{'rue'}, n° $input{'no'}\n". "Code postal : $input{'cp'}\n". "Localité : $input{'localite'}\n". "Pays : $input{'pays'}\n". "Adresse mail : $input{'email'}\n". "Sexe : $input{'sexe'}\n". "\n\nCommentaire :\n $input{'commentaire'}"; if ($smtp eq "") { # smtp est vide donc on utilise sendmail return &miniSendmail($to,$mailfrom,$mailsubject,$msg); } else { return &MySendMail($to,$mailfrom,$msg,$smtp,$mailsubject); } } ############################################################################ sub MySendMail { # utilisation MySendMail ($to, $from, $message, $smtpserver,$sujet) my $to = $_[0]; my $from = $_[1]; my $message = $_[2]; my $smtpserver = $_[3]; my $sujet = $_[4]; use Net::SMTP; $smtp = Net::SMTP->new($smtpserver); # connecte un serveur SMTP if ($smtp != undef) { $smtp->mail($from); # adresse de l'émetteur $smtp->to($to); # adresse de destination $smtp->data(); # début du mail # Envoi de l'en tete # $smtp->datasend("To:".$to."\n"); $smtp->datasend("From:". $from."\n"); $smtp->datasend("Subject:".$sujet."\n"); $smtp->datasend("\n"); # Corps du message. # $smtp->datasend($message); $smtp->dataend(); # Terminer l'envoi de mail $smtp->quit; # Terminer ma connexion smtp return 0; } else { # erreur ne peut contacter le serveur smtp return 1; } } ############################################################################ sub Date { local (@DATE)=("Janvier","Février", "Mars","Avril", "Mai", "Juin", "Juillet", "Août","Septembre", "Octobre","Novembre","Décembre") ; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; my $date = "$mday $DATE[$mon] $year" ; return $date; } ############################################################################ sub miniSendmail { my($to,$from,$sujet, $message); $to = $_[0]; $from = $_[1]; $sujet = $_[2]; $message = $_[3]; open (MAIL,"|$mailprog -t") || return 1; print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $sujet\n\n"; print MAIL "$message\n"; print MAIL "\n"; close (MAIL); return 0; }