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

PHP & Base de données Discussion :

Envoi massif de mail via mail() ?


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut Envoi massif de mail via mail() ?
    Bonjour à tous,

    Je vous explique un peu la situation :

    Dans le cadre de mon boulot je dois faire évoluer un de nos sites de telle à manière à ce que dès qu'il y a du nouveau dans l'espace privé d'une personne un email soit envoyé le soir vers 20h.

    Le soucis c'est que parfois un nouvel élément concerne l'ensemble des inscrits, ce qui représente 17000 personnes.

    J'avais pensé à faire une tâche automatique via cron, qui enverrai chaque jour à 20h le récap à tous les inscrits.

    Cependant, je doute que la fonction mail() de php puisse gérer cet envoi de 17000 mails sans se planter une fois.

    Auriez-vous une solution plus "propre", tout en utilisant Cron afin d'automatiser cette tâche ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    vu le volume je pense plutôt qu'il te faut installer ton propre serveur postfix.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    Sendmail, postfix ou qmail ca reviendra au même.

    Monter un serveur mail pour balancer plusieurs milliers de mail ca se fait pas en claquant des doigts. Sans compter qu'il faudra ajouter la gestion des bounces et surveiller le taux d'ouverture sous peine flinguer la réputation de ton domaine.

    Vu ton volume (je dirai même pas 50K mails/mois) et ce que ca coute par an, part sur une solution comme Sendgrid (ou Mailjet, ou ce que tu veux qui fasse du transactional email avec une api).

  4. #4
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Nous avons déjà une solution Mailjet pour faire partir une newsletter. Est ce possible d'automatiser un envoi sous Mailjet ? Ce serait mieux que de faire la manipulation tous les jours de la semaine ou une fois par semaine.

    Merci d'avance.

  5. #5
    Membre à l'essai
    Homme Profil pro
    nope
    Inscrit en
    Avril 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : nope

    Informations forums :
    Inscription : Avril 2016
    Messages : 4
    Points : 13
    Points
    13
    Par défaut
    Note :
    For the sending of large amounts of email, see the » PEAR::Mail, and » PEAR::Mail_Queue packages.
    Si tu as des notions de C autant le faire avec, sinon je vois pas pourquoi la fonction mail planterais peut-être une grosse comsomation cpu et un assez gros traffic

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    Nous avons déjà une solution Mailjet pour faire partir une newsletter. Est ce possible d'automatiser un envoi sous Mailjet ? Ce serait mieux que de faire la manipulation tous les jours de la semaine ou une fois par semaine.
    Oui c'est possible d'automatiser un envoi. Y a une api, une doc pas trop mal et et les exemples qui vont avec en php. http://dev.mailjet.com/guides/?php#s...-a-basic-email

    Si tu as des notions de C autant le faire avec, sinon je vois pas pourquoi la fonction mail planterais peut-être une grosse comsomation cpu et un assez gros traffic
    Dans ce genre de cas, les gens oublient que le but n'est pas d'envoyer les mails, mais de les faire arriver en boite de réception.

    mail() dans une boucle ca fonctionne (déjà vu sur des envois de plus 20K mails). Suffit juste de pas attendre grand chose du taux d'ouverture...

  7. #7
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par scvo.0ne Voir le message
    Oui c'est possible d'automatiser un envoi. Y a une api, une doc pas trop mal et et les exemples qui vont avec en php. http://dev.mailjet.com/guides/?php#s...-a-basic-email
    Merci, je vais faire mes petites recherches de ce côté là afin de voir les possibilité.

    Mille merci !

  8. #8
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par scvo.0ne Voir le message
    Oui c'est possible d'automatiser un envoi. Y a une api, une doc pas trop mal et et les exemples qui vont avec en php. http://dev.mailjet.com/guides/?php#s...-a-basic-email

    J'ai commencé à étudier la chose et je rencontre un petit obstacle. Il y a certaine procèdure qui ne sont disponible qu'en cURL. je les ai mise dans un fichier php, mais ça ne fonctionne pas...

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # list sender resources
     
    curl -s -X GET \
    --user "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE" \
    https://api.mailjet.com/v3/REST/sender
    Ou encore :

    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
    <?php
    require 'vendor/autoload.php';
    use \Mailjet\Resources;
    $mj = new \Mailjet\Client(getenv('MJ_APIKEY_PUBLIC'), getenv('MJ_APIKEY_PRIVATE'));
    $body = [
        'FromEmail' => "pilot@mailjet.com",
        'FromName' => "Mailjet Pilot",
        'Subject' => "Your email flight plan!",
        'Text-part' => "Dear passenger, welcome to Mailjet! May the delivery force be with you!",
        'Html-part' => "<h3>Dear passenger, welcome to Mailjet!</h3><br />May the delivery force be with you!",
        'Recipients' => [
            [
                'Email' => "passenger@mailjet.com"
            ]
        ]
    ];
    $response = $mj->post(Resources::$Email, ['body' => $body]);
    $response->success() && var_dump($response->getData());
    ?>
    J'ai bien remplacé les Clé API si vous vous posez la question.

    Merci d'avance

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 383
    Points
    383
    Par défaut
    Tu peux faire du curl en php.

    Et pour le 2eme script, ca serait possible d'avoir le var_dump de $response->getdata() ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Voici le vardump :

    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
    C:\wamp64\www\ESPACE-PERSO\automate.php:23:
    object(Mailjet\Response)[30]
      private 'status' => int 401
      private 'success' => boolean false
      private 'body' => null
      public 'request' => 
        object(Mailjet\Request)[2]
          private 'method' => string 'POST' (length=4)
          private 'url' => string 'https://api.mailjet.com/v3/send' (length=31)
          private 'filters' => 
            array (size=0)
              empty
          private 'body' => 
            array (size=6)
              'FromEmail' => string 'info@aftt.be' (length=12)
              'FromName' => string 'Mailjet Pilot' (length=13)
              'Subject' => string 'Your email flight plan!' (length=23)
              'Text-part' => string 'Dear passenger, welcome to Mailjet! May the delivery force be with you!' (length=71)
              'Html-part' => string '<h3>Dear passenger, welcome to Mailjet!</h3><br />May the delivery force be with you!' (length=85)
              'Recipients' => 
                array (size=1)
                  ...
          private 'auth' => 
            array (size=2)
              0 => boolean false
              1 => boolean false
          private 'config' (GuzzleHttp\Client) => 
            array (size=8)
              'defaults' => 
                array (size=1)
                  ...
              'handler' => 
                object(GuzzleHttp\HandlerStack)[4]
                  ...
              'allow_redirects' => 
                array (size=5)
                  ...
              'http_errors' => boolean true
              'decode_content' => boolean true
              'verify' => boolean true
              'cookies' => boolean false
              'headers' => 
                array (size=1)
                  ...
          public 'type' => string 'application/json' (length=16)

  11. #11
    Membre à l'essai
    Homme Profil pro
    AFTT
    Inscrit en
    Janvier 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : AFTT

    Informations forums :
    Inscription : Janvier 2015
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    J'ai su régler le problème en actualisant mon API KEY SECRET.

    Par contre, le mail s'envoi correctement en local (après l'ajout du fichier cacert.pem et modification du fichier php.ini).

    Par contre quand je veux le lancer en ligne j'au une erreur 500... A quoi cela pourrais être du ?

    Merci d'avance.

Discussions similaires

  1. [XL-2013] Envoi de plusieurs fichiers par mail via une macro
    Par Mathsdeb dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 19/06/2019, 17h53
  2. Réponses: 2
    Dernier message: 31/03/2010, 12h24
  3. Réponses: 3
    Dernier message: 19/03/2009, 19h21
  4. Amélioration du code de l'envoi d'une feuille par mail via LotusNotes
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 03/11/2008, 14h39
  5. envoi de mail via Oracle
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 26
    Dernier message: 07/11/2005, 10h20

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