Il y a actuellement 411 visiteurs
Vendredi 29 Mars 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

e-mail de masse.

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

e-mail de masse.

Message le 16 Jan 2005 12:26

Salut

J'ai juste une question : comment faire pour envoyer un e-mail de masse sans que les recepteurs voient que c'est un mail de masse.

Merci d'avance :D
Avatar de l'utilisateur
Kypris
Visiteur
Visiteur
 
Messages: 5
Inscription: 01 Jan 2005 22:06
 


Message le 16 Jan 2005 12:43

On apprend à programmer en Perl...

Voila un petit truc écrit pour l'occasion du nouvel an (qui prend le fichier avec les contacts du logiciel mutt, et pour chaque groupe de personnes permet d'envoyer un message "personnalisé")
Code: Tout sélectionner
#!/usr/bin/perl

use strict;
use POSIX;
use DBI;

our %config;
our @groups;
$config{"aliases_file"}="/home/warbrain/Emails/mutt/aliases.rc";
$config{"lists_dir"}="/home/warbrain/Emails/Lists/";


our $dbh= DBI->connect( "dbi:SQLite:/tmp/eventspam.dbl" ) || die "Cannot connect: $DBI::errstr
";

sub create {
   our $dbh;
   $dbh->do("DROP TABLE emails") || print "Table is new, creating...
";
   $dbh->do("DROP TABLE groups") || print "Table is new, creating...
";
   $dbh->do("CREATE TABLE emails (email PRIMARY KEY,ealias UNIQUE,ename,ealone DEFAULT 1)")|| die "Cannot create table 'emails'
";   
   $dbh->do("CREATE TABLE groups (gname,gsub)")|| die "Cannot create table 'groups'
";   
}

sub fill {
   our $dbh;
   our %config;
   our @groups;
   open(FH,$config{"aliases_file"});
   my $group=0;
   my $groupligne;

   while(my $ligne=<FH>){
      chomp($ligne);
      if (($ligne =~ /^s*#/) or ($ligne =~ /^s*$/)){
## ligne vide ou commentaire
         $group=0;
         next;
      }
      $ligne=~s/^s*//;
      $ligne=~s/s*$//;
      $ligne=~s/s+/ /;
      if ($group == 0){
         my ($ealias,$ename,$email,$linetail,$groupname);
         if ($ligne=~/^aliass+(S+)s*(.*?)s+<(.+?@.+?)>$/){
            ## ligne de mail normale
            $ealias=$1;
            $ename=$2;
            $email=$3;
            $ligne=$email;
            $dbh->do("INSERT INTO emails (email, ealias, ename) VALUES ('$email','$ealias','$ename')")
               or   print "NOT UNIQUE: ($email,$ealias,$ename)";
            #$dbh->do("INSERT INTO groups (gname,gsub) VALUES ('$ealias','$ealias')")
            #   or print "NOT UNIQUE: ";
#print "==> $ealias / $ename / $ligne <==
";
         } elsif ( $ligne=~/^aliass+(S+).*?,.*?\$/) {
## début d'un groupe
            $groupname=$1;
            #print "$groupname ->
";
            $group=1;
            $groupligne=$ligne;
         } elsif ($ligne=~/^aliass+(S+)s+(.*?)$/) {
#alias d'un alias (groupe monoligne)
            $ealias=$1;
            $linetail=$2;
            #print "$ealias -> $linetail
";
         } else {
            print "INCONNU: $ligne
";   
         }
      } else {
# group != 0
         if ($ligne=~/\$/){
## la ligne se finit par ""
            $ligne=~s/\$//;
            $groupligne=$groupligne.$ligne;
         } else {
# la ligne ne se finit pas par ""
# donc on clos le groupe
            $groupligne=$groupligne.$ligne;

            my $groupname=$groupligne;
            $groupligne=~/^aliass+(S+)s+.*$/;
            $groupname=$1;
            my $res=$dbh->selectall_arrayref(q(SELECT COUNT(*) FROM groups WHERE gname='$groupname'));
            if (@$res[0]->[0] == 0){
               push @groups, $groupname;
#foreach my $hop ( @$res ) {
#   foreach my $i (@$hop) {
#      print $i." "
#   }
#   print "
";
#}
               $groupligne=~s/^aliass+S+s+(.*)$/$1/;
               $groupligne=~s/\/ /g;
               $groupligne=~s/s*,s*/,/g;
               my @G=split(/,/,$groupligne);
#unlink("$aliasDIR/$groupname.grp");
               foreach my $gsub (@G) {
                  ## TODO détecter les subgroup invalides
                  $dbh->do("INSERT INTO groups (gname,gsub) VALUES ('$groupname','$gsub')");
               #   print "   $gsub
";
#   $g=~s/^.*?s+(.*?@.*?)s+.*?$/$1/;
#   $g=~s/<(.*)>/$1/;
#   print "$groupname : $g
";
#   system("echo '$g' >> $aliasDIR/$groupname.grp");
               }
            } else {
## BUG: le groupe a déja été déclaré
            }
            $group=0;
         }
      }
   }
}

sub markgroups {
   our @groups;
   foreach my $group (@groups){
      $dbh->do("UPDATE emails SET ealone=0 WHERE ealias IN (SELECT gsub FROM groups WHERE gname='$group')");
   }
}

sub showalone {
   our $dbh;
   header("Not grouped");
   my $res=$dbh->selectall_arrayref("SELECT ename,ealias,email FROM emails WHERE ealone=1");
   foreach my $r ( @$res ) {
      my @row=@$r;
      print " - ".$row[1]." = ".$row[0]." <".$row[2].">
";
   }

}

sub isfinalalias {
   my ($alias)=@_;
   our $dbh;
   my $res=$dbh->selectall_arrayref("SELECT COUNT(*) FROM emails WHERE ealias='$alias'");
   if (@$res[0]->[0] == 0){
      return 0;
   } else {
      return 1;
   }
}

sub emailgroup {
   my ($groupname,$messagefile,$subject)=@_;
   our $dbh;
   if ((-f "$messagefile") and ($subject ne "")){
      my $res=$dbh->selectall_arrayref("SELECT gsub FROM groups WHERE gname='$groupname'");
      foreach my $r ( @$res ) {
         my @row=@$r;
         if (isfinalalias($row[0])) {
            my $cmd="cat "$messagefile" | mutt '".$row[0]."' -s '$subject'
";
            system($cmd);
            print $cmd;
            #print "F - ".$row[0]."
";
         }
         else {
            emailgroup(($row[0],$messagefile,$subject));
         }
      }   
   } else {
      print "Invalid message file
";
   }
}


sub showgroups {
   our @groups;
   header("Current groups");   
   foreach my $group (@groups) {
      print " - $group
";
   }
}

sub header {
   my ($text)=@_;
   print "====================[ $text ]====================
";
}


sub usage {
   print "Usage:  eventspam <options>

";
   print "Where options could be:
";
# print "inithome <home>    Init directory "home"
";
# print "initgroup <group>  Init group "home"
";
   print "groups              Add a new user called "login"
";
   print "alone               Removes user "login"
";
   print "spam group message  List of users in the sanctuaire
";
   print "who <group>         List users currently connected
";
}

create();
fill();
markgroups();

my $arg=shift;
if ($arg eq "alone"){ showalone(); }
elsif ($arg eq "groups") { showgroups(); }
elsif ($arg eq "spam") { emailgroup(@ARGV); }
else { usage(); }

$dbh->disconnect;
Avatar de l'utilisateur
glenux
PC-Infopraticien
PC-Infopraticien
 
Messages: 2759
Inscription: 01 Mar 2003 16:22
Localisation: Entre deux BarCamps
 

Message le 16 Jan 2005 13:48

:lol: Glenux, Notre Maître Geek à tous.
Ou encore: "comment pourrir sa journée du 2 janvier à envoyer ses voeux"

@Kypris: Si c'est d'un hoax (une chaîne) que tu parles, c'est très mal vu.
Avatar de l'utilisateur
w0lverine
PC-Infopraticien
PC-Infopraticien
 
Messages: 7004
Inscription: 01 Mai 2004 13:38
Localisation: Bordeaux [33]
 

Message le 16 Jan 2005 14:57

J'espère comme le dit W0lverine que le but n'est pas d'envoyer du pouriel.
Un simple logiciel de messagerie suffit, tu rentres les adresses des destinataires dans le champ Cci (copie conforme invisible) et le tour est joué.
Avatar de l'utilisateur
georgiou
PC-Infopraticien
PC-Infopraticien
 
Messages: 7202
Inscription: 18 Juin 2003 11:39
 

Message le 16 Jan 2005 15:01

w0lverine a écrit::lol: Glenux, Notre Maître Geek à tous.
Ou encore: "comment pourrir sa journée du 2 janvier à envoyer ses voeux"

@Kypris: Si c'est d'un hoax (une chaîne) que tu parles, c'est très mal vu.


nonon pas du tout, c'est juste pour me permettre de travailler, envoyer des messages à des acheteurs qui me l'ont demandé.
Avatar de l'utilisateur
Kypris
Visiteur
Visiteur
 
Messages: 5
Inscription: 01 Jan 2005 22:06
 

Message le 16 Jan 2005 15:49

Ok, au temps pour moi, suis alors la méthode de georgiou.
Avatar de l'utilisateur
w0lverine
PC-Infopraticien
PC-Infopraticien
 
Messages: 7004
Inscription: 01 Mai 2004 13:38
Localisation: Bordeaux [33]
 

Message le 16 Jan 2005 16:12

Heu quelques précisions supplémentaires sur le programme :

le fichier aliases.rc contient des adresses sous la forme (pour les personnes):
Code: Tout sélectionner
alias nomDeLAlias Nom Prénom <email.du@destinataire.tld>


et pour les groupes de personnes
Code: Tout sélectionner
alias nomDuGroupe aliasDePersonne1 aliasDePersonne2 aliasDePersonne3 etc...

ou
Code: Tout sélectionner
alias nomDuGroupe aliasDePersonne1
     aliasDePersonne2
     aliasDePersonne3
     etc...


De plus il faut avoir le logiciel mutt installé et correctement configuré pour l'envoi de mail.

Il suffit ensuite de changer la premiere ligne pour la faire pointer sur _votre_ fichier aliases.rc
Avatar de l'utilisateur
glenux
PC-Infopraticien
PC-Infopraticien
 
Messages: 2759
Inscription: 01 Mar 2003 16:22
Localisation: Entre deux BarCamps
 

Message le 16 Jan 2005 17:14

@ glenux

Scotché & admiratif,qu'il est.....le Doyen!!! J'ai du boulot en retard moi.

A+
AtOm.
Avatar de l'utilisateur
Ask to Old Man
Moderateur
Moderateur
 
Messages: 19970
Inscription: 14 Mar 2004 10:06
Localisation: Argenteuil,Val d'Oise
 

Message le 16 Jan 2005 23:45

Merci beaucoup de votre aide, je vais voir ca !
Avatar de l'utilisateur
Kypris
Visiteur
Visiteur
 
Messages: 5
Inscription: 01 Jan 2005 22:06
 

Message le 17 Jan 2005 20:22

:lol:

Sacré glenux, mongueur de perl :wink:
Avatar de l'utilisateur
Stormrider
Expert(e)
Expert(e)
 
Messages: 1637
Inscription: 08 Mai 2004 10:46
Localisation: /Fr/Idf/77/Le Mée
 

Message le 17 Jan 2005 22:51

ca :

Code: Tout sélectionner
#   $g=~s/^.*?s+(.*?@.*?)s+.*?$/$1/;
#   $g=~s/<(.*)>/$1/;



j'adore :wink:
Avatar de l'utilisateur
6r
Expert(e)
Expert(e)
 
Messages: 1488
Inscription: 14 Oct 2003 08:26
Localisation: Troyes
 



Sujets similaires

Message [Réglé] Possible piratage boîte mail
Bonsoir,En tentant de consulter ma boîte Outlook ce soir je constate qu'elle semble piratée.On me refuse l'accès via mes identifiants et la demande d'envoi d'un code par SMS est compromise car mon numéro de téléphone a visiblement été changé lui aussi.Pour information, le site prétend que j'ai essay ...
Réponses: 9

Message mettre le descriptif d'un flyer dans un mail
Bonjour,Excusez-moi mais je ne sais pas à quel endroit, poser la question suivante :Est-possible de mettre le contenu d'un flyer dans un mail afin qu'il soit lisible directement à l'ouverture sans le mettre en pièce jointe ?MerciCordialement
Réponses: 9

Message mail orange
BonjourDepuis que j'ai du changé mon mot de passe orange , ma boite gmail et window 10 ne reconnait plus cette adresse .
Réponses: 4

Message help 2 compte facebook piraté mail et mot de passe changé
Bonjour.Cela peut paraitre être une demande méchante et malveillante mais je vous assure que c'est juste pour récupérer mes comptes qui comportent les photos de mes petits enfants.facebook a bloqué mes compte pour usage inhabituel. et après un mois les compte sont revenu avec une autre photo un autr ...
Réponses: 3

Message Notification sonore reception mail
Bonjour,Est-il possible d'être averti par une notification sonore sur mon PC dès réception d'un mail reçu d'une personne précise sur une adresse mail préciseJe suis sous Windows 10 et j'utilise Firefox. Je lis mes mails sur le webmail de mon fournisseur d'accès.Merci d'avance pour l'aide que vous ...
Réponses: 2

Message Perte d'adresse mail secondaire
BonjourLe site mail de la poste me force à changer de mot de passe, sauf qu'il me demande une vérification par une adresse mail secondaire que je n'ai plus pour m'envoyer un code. Est-il possible de réinitialiser mon mot de passe sans passer par cette adresse mail secondaire ?Merci d'avance
Réponses: 2

Message Zone DNS : domaine chez gandi mais hébergement mail chez OVH
Bonjour, Actuellement, j'ai un nom de domaine qui est chez Gandi mais des serveurs de noms OVH sont utilisés, la gestion DNS se fait donc du coté d'OVH. Les e-mails sont hébergés chez OVH.J'aimerais réattribuer les serveurs de noms Gandi pour pouvoir manipuler la zone DNS depuis Gandi.Malgré les ser ...
Réponses: 0


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.