Accueil > Forum > > > > Répondeur email postfix
Répondeur email postfix
vendredi 12 mars 2010 à 12:09:30 |
Répondeur email postfix

evelyne1957
|
Bonjour à tous,
Je ne suis pas du tout developeuse, si je viens vous voir c'est pour m'aider a faire fonctionner ce script qui devrait me permettre d'avoir un répondeur d'email. Pouvez vous m'aider ?
Merci d'avance pour vos réponse.
Evelyne.
Script:
#!/usr/bin/perl -w
#
# autoreply.pl - Automatic email reply.
#
# All messages are logged to your mail log. Check the
# log after executing the script to see the results.
#
# Set $UID to the uid of the process that runs the script.
# Check the entry in master.cf that calls this script. Use
# the uid of the account you assign to the user= attribute.
# If you want to test the script from the command line,
# set $UID to your own uid.
#
# Set the %mysql_config hash values for each predefined
# key in order to connect to the database holding
# autoreply subject and message.
#
# If necessary, change the path to sendmail in $MAILBIN.
#
# @MAILOPTS contains options to sendmail. Make changes if
# necessary. The default options should work in most
# situations.
#
# The calls to syslog require that your Perl installation
# converted the necessary header files. See h2ph in your
# Perl distribution.
#
require 5.004; # for setlogsock in Sys::Syslog module
use strict;
use Sys::Syslog qw(:DEFAULT setlogsock);
use DBI;
use DB_File;
#
# Config options. Set these according to your needs.
#
my $UID = 5000;
my $MAILBIN = "/usr/sbin/sendmail";
my @MAILOPTS = ("-oi", "-tr", "");
my $SELF = "autoreply.pl";
my $DB_AUTOREPLY = "/var/cache/autoreply/autoreply.db";
my $NO_AUTOREPLY_INTERVAL = 172800; # 48h in seconds
#
# end of config options
my $EX_TEMPFAIL = 75;
my $EX_UNAVAILABLE = 69;
my $EX_OK = 0;
my $sender;
my $addressee;
my $subject;
my $euid = $>;
$SIG{PIPE} = \&PipeHandler;
$ENV{PATH} = "/bin:/usr/bin:/sbin:/usr/sbin";
setlogsock('unix');
openlog($SELF, 'ndelay,pid', 'user');
#
# Check our environment.
#
if ( $euid != $UID ) {
syslog('mail|err', "error: invalid uid: $> (expecting: $UID)");
exit($EX_TEMPFAIL);
}
if ( @ARGV != 2 ) {
syslog('mail|err', "error: invalid invocation (expecting 2 arguments: sender and addressee)");
exit($EX_TEMPFAIL);
} else {
$sender = $ARGV[0];
$addressee = $ARGV[1];
if ( $sender =~ /([\w\-.%]+\@[\w.-]+)/ ) { # scrub address
$sender = $1;
} else {
syslog('mail|err', "error: illegal sender address: $sender");
exit($EX_UNAVAILABLE);
}
if ( $addressee =~ /([\w\-.%]+\@[\w.-]+)/ ) { # scrub address
$addressee = $1;
} else {
syslog('mail|err', "error: illegal addressee address: $addressee");
exit($EX_UNAVAILABLE);
}
}
if (! -x $MAILBIN ) {
syslog('mail|err', "error: $MAILBIN not found or not executable");
exit($EX_TEMPFAIL);
}
#
# Check sender exception.
#
if ( $sender eq ""
|| $sender =~ /^owner-|-(request|owner)\@|^(mailer-daemon|postmaster)\@/i) {
exit($EX_OK);
}
#
# Check message contents for Precedence header.
#
while ( <STDIN> ) {
last if (/^$/);
if ( /^subject:\s+(.*)$/i ) {
$subject = $1;
}
exit($EX_OK) if ( /^precedence:\s+(bulk|list|junk)/i );
# See http://tools.ietf.org/html/rfc3834
exit($EX_OK) if ( /^auto-submitted:\s+(auto-generated|auto-replied)/i );
}
#
# Check no autoreply interval
#
my %db_handle;
my $key = "$sender->$addressee";
my $need_autoreply = 1;
tie %db_handle, "DB_File", $DB_AUTOREPLY, O_RDWR|O_CREAT, 0640, $DB_HASH
|| syslog('mail|err', "error: cannot open file " . $DB_AUTOREPLY . ": $!");
# Show all key/values
#while ( my ($k, $v) = each %db_handle ) {
# syslog('mail|info', "$k = $v");
#}
if ( $db_handle{$key} ) {
my $last_sent = $db_handle{$key};
if ( time - $last_sent < $NO_AUTOREPLY_INTERVAL ) {
$need_autoreply = 0;
}
}
if ( ! $need_autoreply ) {
untie %db_handle;
exit($EX_OK);
}
delete $db_handle{$key};
$db_handle{$key} = time;
untie %db_handle;
#
# Connect to the database
#
my $dsn = 'DBI:mysql:' . $mysql_config{database} . ':'
. $mysql_config{server} . ':' . $mysql_config{port};
my $dbh = DBI->connect($dsn, $mysql_config{username},
$mysql_config{password}) || syslog('mail|err', "error: cannot connect to database: $DBI::errstr");
my $sth = $dbh->prepare(
'SELECT autoreply_message FROM ' .$mysql_config{table}
. ' WHERE autoreply_mailbox_email = \'' . $addressee . '\''
);
$sth->execute();
my @row = $sth->fetchrow_array();
if ($sth->err()) {
syslog('mail|err', "error: query failed: $DBI::errstr");
$dbh->disconnect;
exit($EX_TEMPFAIL);
}
$sth->finish();
my $message = $row[0];
$dbh->disconnect || syslog('mail|err', "warning: disconnection failed: $DBI::errstr");
#
# Open pipe to mailer.
#
my $pid = open(MAIL, "|-") || exec("$MAILBIN", @MAILOPTS);
#
# Send reply.
#
print MAIL "To: $sender\n";
print MAIL "From: $addressee\n";
print MAIL "Return-Path:\n";
print MAIL "Auto-Submitted: auto-replied\n";
print MAIL "Content-Type: text/plain; charset=UTF-8; format=flowed\n";
print MAIL "Subject: Auto: $subject\n\n";
print MAIL $message;
if (! close(MAIL) ) {
syslog('mail|err', "error: failure invoking $MAILBIN: %m");
exit($EX_UNAVAILABLE);
}
syslog('mail|info', "sent reply to $sender");
exit($EX_OK);
sub PipeHandler {
syslog('mail|err', "error: broken pipe to mailer.");
}
|
|
Cette discussion est classée dans : mail, to, my, syslog, if
Répondre à ce message
Sujets en rapport avec ce message
if [ par nitro120 ]
svp indiquez moi la syntaxe EXACTE des conditions car jobtiens tjs des erreurs dans mes scripts...merciJavaScript forever !
Addons 4 newbie "how to" [ par kangun ]
Bonjour tlmje suis un vrai newbie sur mirc et je voudrais savoir comment on utilise les addons (installation, initialisation, ...)thx pour vos réponse
Game [ par jfm ]
I'm trying to make a script to play a automatic game with 4 people. (invite people and then schedule random plays each one).Anyone nows a script alrea
HELP ME J EN PEUX PLUS [ par Snip ]
je n arrive plus a me connecter a irc ! suite a l installaion de nnscript373 irc marche plus du tout ! sur n imorte kel server vite aider moi c insupo
Mail ... [ par Tucefa ]
SalutAyant vu ce code la :alias sendmail { %mail.from = $1 %mail.to = $2 %mail.smtp = $3 %mail.msg = $4- sockopen mail $3 25 set %mail.rec
Hotlink dans une fenêtre ? [ par Nymouas ]
Bonjour,Je voudrais savoir comment je peux créer une hotlink sur un nick (le doigt qui s'affiche) ds une fenêtre @ avec une liste de nick à droite (co
comment envoyer un mail sur ce site [ par bugsbunny471 ]
je voudrais savoir comment on peut envoyer un mail a quelqu'un qui a un compte sur ce site
Unable to connect to server (Software caused connection abort) [ par fabienfsf ]
Bonjour tout le monde,Sa fait 2 jours que je n'arrive plus à me connecter à mon irc ! Il me met:(08:30:54) * Connecting to irc.langochat.net (6667)-(0
If [ par LeX02 ]
Bonjour je voudrais savoir comment faire lire une if dans une variables?
Livres en rapport
|
Derniers Blogs
[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson DéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONSDéVELOPPEMENT MOBILE : .NET COMPACT FRAMEWORK & LIMITATIONS par Pi-R
Introduction :
Le développement d'applications mobiles est quelque peu différent du développement d'applications sous Windows. En effet, le développement d'applications mobiles se base sur le .NET Compact Fra...
Cliquez pour lire la suite de l'article par Pi-R IPHONE VERSUS WP7 CODINGIPHONE VERSUS WP7 CODING par Nicolas
Je relais une présentation sur slideshare.net, qui compare le développement sur Iphone et Windows Phone 7, qui ma fait sourire. I phone versus windows phone 7 coding View more presentations from www.donburnett.com. J'aurais bien aimé une comparai...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6 Xilisoft HD Vidéo Convertisseur 6 (6.0.3.0421)XILISOFT HD VIDéO CONVERTISSEUR 6 (6.0.3.0421)Xilisoft HD Vidéo Convertisseur est un outil professionnel de conversion HDTV, conçu pour transfo... Cliquez pour télécharger Xilisoft HD Vidéo Convertisseur 6
|