Dans l’article précédent nous avons configuré WordPress pour utiliser PostMark lors de l’envoi d’email. Pour une simple application web qui n’utilise pas WordPress, nous allons maintenant coder un simple envoi d’email avec la trousse à outils PHP fourni par PostMark:
https://github.com/ActiveCampaign/postmark-php/wiki/Getting-Started
Etape 1 : Installation du SDK
Vous devez avoir accès par une interface ou via les lignes de commande à Composer, le gestionnaire de paquets pour PHP
composer require wildbit/postmark-php
Etape 2 : Récupérer les informations nécessaires
2.1 Le jeton serveur (Token)
Vous aurez besoin du jeton utilisé avec votre compte. Il est possible de le récupérer depuis l’onglet « API Tokens » de votre « Server« .
![PostMark Server Panel API Token](/wp-content/uploads/2024/04/postmark-server-token-1024x451.png)
2.2 L’email de l’expéditeur
Vous aurez aussi besoin de l’identifiant de l’expéditeur. Il s’agit de l’adresse email utilisée sur la page « Sender Signatures« . Si vous avez plusieurs signatures et plusieurs serveurs, pensez-bien à utiliser celle correspondante au domaine de votre serveur !
![PostMark Server Panel API Token](/wp-content/uploads/2024/03/postmark-sender-signatures-1024x380.png)
Etape 3 : Script PHP
Une fois le composant installé et les informations nécessaires vous pouvez utiliser le snippet indiqué sur la page « Read me » (Lisez-moi) du répertoire GitHub.
Voici ci-dessous une version légèrement adaptée pour une utilisation plus souple :
require_once "./vendor/autoload.php"; # Remplacer la valeur suivante avec le jeton récupéré à l'étape numéro 2.1 define( 'POSTMARK_TOKEN', '1a2b3c4d5e6f7g8h9i0j-1234-5678-abcd-efgh-1a2b3c4d5e6f7g8h9i0j' ); # Remplacer la valeur suivante avec l'adresse email récupérée à l'étape numéro 2.2 define( 'POSTMARK_SENDER', 'test@example.com' ); try { $client = new \Postmark\PostmarkClient( POSTMARK_TOKEN ); $sendResult = $client->sendEmail( POSTMARK_SENDER, # Adresse de l'expéditeur (doit être configuré dans PostMark) "ben@example.com", # Adresse du destinaire "Hello from Postmark!", # Objet du message "This is just a friendly 'hello' from your friends at Postmark. Is it working dude?" # Corps du message ); // Récupérer l'identifiant du message dans la réponse echo $sendResult->MessageID; } catch( \Postmark\Models\PostmarkException $ex ) { // If the client is able to communicate with the API in a timely fashion, // but the message data is invalid, or there's a server error, // a PostmarkException can be thrown. echo $ex->httpStatusCode; echo $ex->message; echo $ex->postmarkApiErrorCode; } catch( Exception $generalException ) { // A general exception is thrown if the API // was unreachable or times out. }
C’est fini !
Si tout est correctement configuré, l’envoi d’email devrait s’effectuer sans soucis. 8-|