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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[API MAILJET] Du CURL dans une fonction PHP c'est bien ?


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    CODE & DESIGN - with attitude
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : CODE & DESIGN - with attitude
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Par défaut [API MAILJET] Du CURL dans une fonction PHP c'est bien ?
    L'API MAILJET me propose çà : https://dev.mailjet.com/email/refere...3_post_contact

    Pour connecter un CMS php avec un simple champ newsletter qui viendrait incrémenter les contacts mailljet.

    Apparemment, je peux le faire en PHP, en CURL en NODE JS
    mais avec CURL de fait inutile charger les librairies ce qui n'est pas le cas avec PHP.

    Du coup intégrer du CURL dans une fonction PHP, c'est vraiment conseillé ?
    Ou mieux vaut utiliser PHP et ses librairies tout simplement ? Ou autre chose ?

    Le plus simple selon vous, c'est quoi ?

    Pour le moment, je pense à quelque chose comme çà... C'est ce qui me parait le plus simple - direct.

    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
     
    <?php
     
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
     
        $name = sanitize_text_field($_POST['name']);
        $email = sanitize_email($_POST['email']);
        $message = sanitize_textarea_field($_POST['message']);
     
        // Envoi du mail via wp_mail
     
        $to = 'newsletter@example.com';
        $subject = 'New Contact Form Submission';
        $body = "Name: $name\nEmail: $email\nMessage: $message";
        $email_sent = wp_mail($to, $subject, $body);
     
        // Creer un contact dans Mailjet
     
        $apiKey = 'mon_mailjet_api_key';
        $apiSecret = 'mon_mailjet_api_secret';
        $url = 'https://api.mailjet.com/v3/REST/contact';
     
        $data = [
            'Data' => [
                'Email' => $email,
                'Name' => $name,
            ]
        ];
     
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_USERPWD, "$apiKey:$apiSecret");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
     
        $response = curl_exec($ch);
        curl_close($ch);
     
        return $response;
     
    }
    ?>

  2. #2
    Membre confirmé
    Homme Profil pro
    CODE & DESIGN - with attitude
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : CODE & DESIGN - with attitude
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Par défaut
    J'ai testé la fonction et çà marche. Si cela intéresse certains ?
    En résumé sur un site quelconque quand un champs email pour une newsletter(ou autre chose) est rempli, le mail vient directement se rajouter dans la liste mailjet.

    J'ai basculé sur cette ressource de l'API MAILJET : https://dev.mailjet.com/email/refere...gemanycontacts

    L'avantage de CURL avec PHP, c'est qu'il est inutile de charger les librairies MAILJET et ses dépendances (5/6) dans son site.

    Mais n'étant pas très familier avec CURL, je me demande encore si c'est la meilleure manière de faire parceque si c'était le cas MAILJET aurait pu l'indiquer dans sa doc ?

  3. #3
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 665
    Par défaut
    je pense que ce service est accessible sous forme d'une API qui reçoit des requêtes http donc ensuite la façon dont est envoyée cette requête ne change pas grand chose.

    en php, une requete http get peut être envoyée avec la fonction file_get_contents par exemple. et pour des requêtes plus complexes, la bibliothèque curl est très complète donc je ne vois pas de souci à son utilisation dans votre cas.

Discussions similaires

  1. [PostgreSQL] connection de base de donnees dans une fonction php
    Par STunisino dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 10/02/2010, 14h30
  2. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 13h37
  3. [MySQL] Est-ce possible de retourner une matrice dans une fonction PHP?
    Par zouzino dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/11/2007, 16h53
  4. Réponses: 1
    Dernier message: 25/10/2007, 21h25
  5. [PHP-JS] Récupérer champ checkbox dans une fonction php
    Par Tyler Durden dans le forum Langage
    Réponses: 7
    Dernier message: 09/11/2006, 00h54

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