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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|