Changeset 95509 in spip-zone


Ignore:
Timestamp:
Feb 26, 2016, 11:12:44 AM (3 years ago)
Author:
cedric@…
Message:

branchement du webhook mailjet, et on utilise plus le genie mailjet_feedback que si on est en api<v3

Location:
_plugins_/mailshot/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailshot/trunk/bulkmailer/mailjet.php

    r95508 r95509  
    9292}
    9393
     94
     95/**
     96 * Prendre en charge le webhook mailjet
     97 *
     98 * @param $arg
     99 */
     100function bulkmailer_mailjet_webhook_dist($arg){
     101
     102        if ($_SERVER['REQUEST_METHOD'] == 'HEAD'){
     103                http_status(200);
     104                exit;
     105        }
     106
     107        // les donnes sont postees en JSON RAW
     108        $data = $GLOBALS['HTTP_RAW_POST_DATA'];
     109        spip_log("bulkmailer_mailjet_webhook_dist $data","mailshot");
     110
     111        include_spip('inc/json');
     112        if (!$data OR !$events = json_decode($data, true)){
     113                http_status(403);
     114                exit;
     115        }
     116
     117        // si un seul event, on le met dans un tableau pour tout traiter de la meme facon
     118        if (isset($events['event'])){
     119                $events = array($data);
     120        }
     121
     122        foreach($events as $event){
     123                // array("open", "click", "bounce", "spam", "blocked");
     124                $quoi = $event['event'];
     125                if ($quoi=="open") $quoi="read"; // open chez mailjet, read ici
     126                if ($quoi=="click") $quoi="clic"; // click chez mailjet, clic ici
     127                if ($quoi=="bounce") $quoi="soft_bounce"; // bounce chez mailjet, soft_bounce ici
     128                if ($quoi=="blocked") $quoi="reject"; // blocked chez mailjet, reject ici
     129
     130                $email = $event['email'];
     131                $tracking_id = $event['customcampaign'];
     132                if ($tracking_id){
     133                        $tracking_id = explode('/#',$tracking_id);
     134                        if (reset($tracking_id)==protocole_implicite($GLOBALS['meta']['adresse_site'])){
     135                                $tracking_id = end($tracking_id);
     136                                spip_log("tracking $quoi $email $tracking_id",'mailshot');
     137                                // appeler l'api webhook mailshot
     138                                $feedback = charger_fonction("feedback","newsletter");
     139                                $feedback($quoi,$email,$tracking_id);
     140                        }
     141                }
     142        }
     143
     144}
    94145
    95146
  • _plugins_/mailshot/trunk/mailshot_pipelines.php

    r95210 r95509  
    2323        }
    2424
    25         // gerer les feedback par pooling sur mailjet (on ne sait pas faire mieux simplement)
     25        // gerer les feedback par pooling sur mailjet si version<3 (on ne sait pas faire mieux simplement)
    2626        include_spip("inc/config");
    2727        $config = lire_config("mailshot/");
    28         if ($config['mailer']=="mailjet")
     28        if ($config['mailer']=="mailjet"
     29          AND (!isset($config['mailjet_api_version']) OR $config['mailjet_api_version']<3)) {
    2930                $taches_generales['mailjet_feedback'] = 3400;
     31        }
    3032
    3133        // gerer les feedback par pooling par imap
    32         if (isset($GLOBALS["imap_feedback_username"]) && isset($GLOBALS["imap_feedback_password"]) && $GLOBALS["imap_feedback_hostname"])
     34        if (isset($GLOBALS["imap_feedback_username"]) && isset($GLOBALS["imap_feedback_password"]) && $GLOBALS["imap_feedback_hostname"]){
    3335                $taches_generales['imap_feedback'] = 3400;
     36        }
    3437
    3538        return $taches_generales;
  • _plugins_/mailshot/trunk/paquet.xml

    r95493 r95509  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.13.1"
     4        version="1.14.0"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.