IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Envoie de mail en masse ( avec postfix )


Sujet :

Réseau

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Envoie de mail en masse ( avec postfix )
    Bonjour à tous,

    J'ai besoin d'envoyer un très grand nombre de messages par jours, et posftix ne me permet pas d'envoyer plus de 40 messages par minutes, surtout à cause des domaines @orange.fr et @wanadoo.fr.

    J'aimerais en envoyer au moins 500 par minute, afin de faire une mailing list.

    J'aimerais donc savoir si certains d'entre vous on du retour d'expérience sur postfix et le mailing.

    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu n'as pas de limite, hormis la limite des receveurs/dispatcheurs.

    personellement je faisait des envois massif de marketing depuis une base de donnée avec un résultat d'environ 10000 par heure réellement reçus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    #!/bin/sh
    # pour entete dans le log
    echo '########' >> /var/log/newmail
    echo $(date +%Y.%m.%d--%H:%M)" "$0" se lance" >> /var/log/newmail
    #
    . /root/scripts/.pass
    # charger les variables d'environnement
    ret=0
     
     
    # genere les script SQL
    # act_id | act_ens_id | act_om_id | act_value | act_number | act_date_add | act_liste_generated | act_done
    gen()
    {
    [ -f /tmp/tmp.sql ] && rm /tmp/tmp.sql
    cat > /tmp/tmp.sql << EOT
    use SeeBadge_ens ;
    select act_id,act_value,act_value2 from action_marketing  where act_done=1 and act_liste_generated=1 limit 1,1 \G
    select * from liste_marketing ;
    EOT
    }
    #Ajouter un select count 
    # pour en gerer la variable et 
    # generer une boucle de gen_listeadresses + envoi_mail
     
     
    # cree la liste d'adresses de destination du mail
    # en chargeant les variables TITRES, CORP, ID, et listeadresses
    gen_listeadresses()
    {
            mysql -u root -p$pass < /tmp/tmp.sql > /tmp/datas.tmp
            listeadresses=$(grep '@' /tmp/datas.tmp | awk '{print $2}' | sed 's/mail\ //;s/$/,/g')
            TITRE=$(grep "act_value:" /tmp/datas.tmp | sed 's/.*act_value://')
            CORP=$(grep "act_value2:" /tmp/datas.tmp | sed 's/.*act_value2://')
            ID=$(grep "act_id:" /tmp/datas.tmp | sed 's/act_id://;s/.*act_value2://;s/act_val.*//;s/\t//')
     
            if [ $(echo ${ID} | grep "[0-9]") = 1 ] ; then 
     # on a pas de mail a envoyer
                    exit 0 
            fi
            # rentrer la act_liste_generated=0 dans la base
    cat > /tmp/tmp.sql << EOT
    use SeeBadge_ens ;
    update action_marketing set act_liste_generated=0 where act_id=${ID} ; 
    EOT
            mysql -u root -p$pass < /tmp/tmp.sql 
            # une liste de mail a ete trouvee
    }
     
     
    #genere le corp du mail depuis la variable CORP
    gen_corp()
    {
    (
            echo "<html><body>"
            echo ${CORP}
            echo "</body></html>"
    ) > /tmp/NEWMAIL.htm
    }
     
     
    # realise la mise en file d'attende des mails pour laisser la main
    # a postfix pour l'envoi concret
    envoi_mail()
    {
    gen_corp
    # pour tests :
    # echo ${CORP} | mutt -s "$(echo ${TITRE})" -b ${listeadresses} contact@citymediacard.eu
    # fin tests ;
    (
            echo "From: contact@citymediacard.eu"
            echo "bcc: ${listeadresses}"
           echo "subject: ${TITRE}"
            echo "MIME-Version: 1.0"
            echo "Content-Type: text/html"
            echo "Content-Disposition: inline"
            cat /tmp/NEWMAIL.html
    ) | mutt -b ${listeadresses} contact@citymediacard.eu
    cat > /tmp/tmp.sql << EOT
    use SeeBadge_ens ;
    update action_marketing set act_done=0 where act_id=${ID} ; 
    EOT
            mysql -u root -p$pass < /tmp/tmp.sql 
            # les emails sont tous en file d'attente postfix
    }
     
    # CORP DE SCRIPT
    # garder l'historique des execution de check.
    gen
    if [ $? -eq 0 ] ; then ret=$? ; echo "Pas de mails a emettre" >> /var/log/newmail ; else exit $? ; fi
    gen_listeadresses
    if [ $? -eq 0 ] ; then ret=$? ; echo "gen_listeadresses" >> /var/log/newmail ; else exit $? ; fi
    echo $(date +%Y%m%d-%H%M)" "$0" genere la liste de mail" >> /var/log/newmail
    envoi_mail
    if [ $? -eq 0 ] ; then ret=$? ; echo "envoi_mail" >> /var/log/newmail ; else exit $? ; fi
    echo $(date +%Y%m%d-%H%M)" "$0" envoi les mails a ${listeadresses} " >> /var/log/newmail
    [ -f /tmp/NEWMAIL.html ] &&  rm /tmp/NEWMAIL.html
    [ -f /tmp/tmp.sql ] && rm /tmp/tmp.sql
    exit $ret
    # sortie 0 = ok
    par contre la config postfix utilisé à l'époque je n'y plus accès .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    J'ai oublié de préciser que l'envoie de mail se fais à l'aide de interspire email marketer.

    Les messages sont bien mis en queue, mais ne s'écoule pas trés rapidement.

    Surtout dû à des erreurs de "too many request...".

    Voici la config :
    main.cf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    [root@ns204980 ~]# postconf -n
    alias_database = hash:/etc/aliases
    alias_maps = hash:/etc/aliases
    command_directory = /usr/sbin
    config_directory = /etc/postfix
    daemon_directory = /usr/libexec/postfix
    data_directory = /var/lib/postfix
    debug_peer_level = 2
    default_destination_concurrency_limit = 3
    html_directory = no
    inet_protocols = all
    initial_destination_concurrency = 2
    mailq_path = /usr/bin/mailq.postfix
    manpage_directory = /usr/share/man
    maximal_queue_lifetime = 5d
    mydomain = poolmediacenter.com
    myhostname = poolmediacenter.com
    myorigin = $mydomain
    newaliases_path = /usr/bin/newaliases.postfix
    readme_directory = /usr/share/doc/postfix-2.7.0/README_FILES
    sample_directory = /usr/share/doc/postfix-2.7.0/samples
    sendmail_path = /usr/sbin/sendmail.postfix
    setgid_group = postdrop
    smtp_destination_concurrency_limit = 3
    smtp_destination_recipient_limit = 50
    smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination permit_inet_interfaces
    smtpd_sasl_auth_enable = yes
    smtpd_tls_security_level = encrypt
    unknown_local_recipient_reject_code = 550
    et du master.cf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    smtp      inet  n       -       n       -       1       smtpd

Discussions similaires

  1. Envoi de mails depuis localhost avec Postfix
    Par dré kam dans le forum Administration système
    Réponses: 2
    Dernier message: 20/07/2012, 10h28
  2. [OL-2003] Envoi de mail en masse avec certificat
    Par richie_leffe dans le forum Outlook
    Réponses: 0
    Dernier message: 12/12/2011, 10h42
  3. Pb d'envoie de mail en ASP avec un objet CDO
    Par mister_rom dans le forum ASP
    Réponses: 1
    Dernier message: 02/04/2007, 22h56
  4. Réponses: 4
    Dernier message: 07/05/2006, 01h36
  5. [Mail] envoi mail en masse avec fonction bcc
    Par jarod71 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo