diff --git a/m2m.pl b/m2m.pl index fc47008..a9b7361 100755 --- a/m2m.pl +++ b/m2m.pl @@ -46,12 +46,17 @@ usage(0) if $help; usage(2) if not $destination; +my $sender = ""; if ( $mail ) { if ( $mail !~ /^\w+(\.\w+)*\@\w+(\.\w+)+\z/ ) { print STDERR "Erreur : adresse e-mail \"$mail\" incorrect\n"; exit 3; } $mail =~ s/(\W)/\\$1/go; + my $hostname = `hostname`; + my $domain = `hostname -d`; + $sender = "$ENV{'USER'}\@$hostname.$domain"; + $sender =~ s/[\n\r]+//go; } if ( $destination eq "-" ) { @@ -89,7 +94,7 @@ my $total = 0; # Première itération -my $heure = `date`; +my $heure = date();; if ( not $quiet ) { print STDERR "Processus n° $$\n\n"; print STDERR "Démarrage le $heure\n"; @@ -135,7 +140,7 @@ } } else { - $heure = `date`; + $heure = date();; if ( $nb ) { $nb --; print STDERR "Pause (10 sec.) à la notice ", pretty($num), " le $heure\n"; @@ -178,7 +183,7 @@ } } else { - $heure = `date`; + $heure = date();; if ( $nb ) { $nb --; print STDERR "Pause (10 sec.) à la notice ", pretty($num), " le $heure\n"; @@ -187,7 +192,7 @@ else { print STDERR "Aucune réponse du serveur \"$base\" le $heure\n"; sleep 20; - $heure = `date`; + $heure = date();; print STDERR "Reprise le $heure\n"; $nb = 10; } @@ -196,11 +201,16 @@ close OUT; -$heure = `date`; +$heure = date();; if ( not $quiet ) { print STDERR "Arrêt le $heure\n"; } -message("Arrêt le $heure"); +if ( $num > 1 ) { + message("Arrêt le $heure\n$num/$total enregistrements traités"); + } +else { + message("Arrêt le $heure\n$num/$total enregistrement traité"); + } exit 0; @@ -310,16 +320,6 @@ $genre = join(", ", @{$host{'genre'}}) . "$genre"; } } -# Ancienne forme de données -#if ( defined $hit{'enrichments'} ) { -# my @enrichments = @{$hit{'enrichments'}}; -# foreach my $enrichment (@enrichments) { -# my %enrichment = %{$enrichment}; -# $lien = $enrichment{'uri'}; -# $type = $enrichment{'type'}; -# push(@types, $type); -# } -# } if ( defined $hit{'enrichments'} ) { my %enrichment = %{$hit{'enrichments'}}; push(@types, sort keys %enrichment); @@ -331,7 +331,7 @@ print OUT join(" ; ", @sujets), "\n"; if ( $num % $etape == 0 ) { - my $heure = `date`; + my $heure = date();; # my $tmp = $num; # 1 while $tmp =~ s/(\d+)(\d\d\d)\b/$1.$2/o; my $nombre = pretty($num); @@ -342,9 +342,9 @@ sub pretty { -my $num = shift; -1 while $num =~ s/(\d+)(\d\d\d)\b/$1.$2/o; -return $num; +my $valeur = shift; +1 while $valeur =~ s/(\d+)(\d\d\d)\b/$1.$2/o; +return $valeur; } sub message @@ -355,14 +355,29 @@ open(MAIL, "| /usr/sbin/sendmail $mail") or die "$!,"; -binmode(MAIL, ":raw"); +binmode(MAIL, ":utf8"); my $ancien = select MAIL; $| = 1; select $ancien; print MAIL "Mime-Version: 1.0\nSubject: Commentaires sur l'extraction de données ISTEX\n"; -print MAIL "Content-Type: text/plain; charset \"UTF-8\"\n"; +print MAIL "From: \"M2M\" <$sender>\n"; +print MAIL "Content-Type: text/plain; charset=utf-8\n"; print MAIL "Content-Transfer-Encoding: 8bit\n\n"; print MAIL "$texte\n\n.\n"; close MAIL; } + +sub date +{ +my @time = localtime(); + +my $jour = (qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$time[6]]; +my $mois = (qw(Janvier Février Mars Avril Mai juin Juillet Août Septembre Octobre Novembre Décembre))[$time[4]]; +my $annee = $time[5] + 1900; + +my $date = "$jour $time[3] $mois $annee "; +$date .= sprintf("%02d:%02d:%02d", $time[2], $time[1], $time[0]); + +return $date; +} \ No newline at end of file