begin process at 2010 07 30 01:21:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

IRC

 > 

Divers

 > 

Général

 > 

Répondeur email postfix


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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?


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales