Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Envoyer un e-mail à l’aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

1 030

Les propriétaires de sites Web doivent régulièrement envoyer des e-mails à nos utilisateurs. Si vous utilisez la fonction mail() de PHP pour envoyer des e-mails, vous réaliserez bientôt que vos e-mails se terminent dans le spam et non dans la boîte de réception de l’utilisateur. En conséquence, la plupart des utilisateurs ne remarquent pas vos e-mails importants. Pour résoudre ce problème, vous devez utiliser des serveurs SMTP pour envoyer vos e-mails.

Le serveur SMTP de Gmail est un choix très populaire parmi les développeurs. Mais il y a 2 problèmes d’utilisation de ce service Google. Premièrement, vous ne pouviez pas définir l’adresse « de » lors de l’envoi de l’e-mail. Gmail a défini votre adresse e-mail (identifiant de messagerie Google) comme adresse d’expéditeur. Deuxièmement, vous devez activer le paramètre "Autoriser les applications moins sécurisées", ce qui n’est pas recommandé par Google.

Pour éviter ces limitations, j’ai trouvé une solution alternative pour le serveur SMTP de Gmail qui est Mailjet. Mailjet est un service de livraison d’e-mails pour les équipes marketing et de développeurs. Nous pouvons facilement envoyer des e-mails en utilisant Mailjet en PHP. Ils fournissent leur propre API de messagerie pour envoyer des e-mails. Vous pouvez également utiliser leur service SMTP.

Commencer

Mailjet fournit un quota de 6000 emails gratuits par mois (200 emails par jour). Pour les petites entreprises, ce quota gratuit est suffisant. Si votre entreprise a besoin de plus d’e-mails, consultez leur page de tarification.

Au cours du processus d’inscription, il vous sera demandé de choisir la méthode d’envoi. Dans ce didacticiel, nous discutons à la fois de l’API de messagerie et du relais SMTP. Pour l’instant, choisissez l’option API.

Envoyer un e-mail à l'aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

Suivez les étapes suivantes. À partir de l’écran ci-dessous, cliquez sur le bouton "Commencer" dans la section développeur.

Envoyer un e-mail à l'aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

Pour récupérer vos clés API, allez dans « Paramètres du compte ». Sur la page suivante, sous la section API REST, cliquez sur « Gestion de la clé API principale et de la clé sous-API ». Copiez la clé API et la clé secrète qui sont requises dans les étapes suivantes.

Envoyer un e-mail à l'aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

Mailjet nous permet de définir l’adresse de l’expéditeur. Sous « Expéditeurs et domaines », cliquez sur « Ajouter un domaine ou des adresses d’expéditeur » et sur la page suivante, ajoutez une adresse d’expéditeur.

Envoyer un e-mail à l'aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

Si vous définissez une adresse autre que l’e-mail de votre compte, vous recevrez un e-mail de vérification.

Envoyer un e-mail à l’aide de Mailjet via cURL en PHP

Nous sommes prêts avec nos clés API et prêts à envoyer notre e-mail en utilisant Mailjet et cURL en PHP. Assurez-vous que cURL est activé sur votre serveur, sinon le code suivant ne fonctionnera pas comme prévu. Remplacez les espaces réservés par les valeurs réelles avant d’exécuter le code ci-dessous.

<?php
$body = [
    'Messages' => [
        [
        'From' => [
            'Email' => "SENDER_EMAIL_ADDRESS",
            'Name' => "SENDER_NAME"
        ],
        'To' => [
            [
                'Email' => "RECIPIENT_EMAIL_ADDRESS",
                'Name' => "RECIPIENT_NAME"
            ]
        ],
        'Subject' => "Greetings from Mailjet.",
        'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"
        ]
    ]
];
  
$ch = curl_init();
  
curl_setopt($ch, CURLOPT_URL, "https://api.mailjet.com/v3.1/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json')
);
curl_setopt($ch, CURLOPT_USERPWD, "API_KEY:SECRET_KEY");
$server_output = curl_exec($ch);
curl_close ($ch);
  
$response = json_decode($server_output);
if ($response->Messages[0]->Status == 'success') {
    echo "Email sent successfully.";
}

Envoyer un e-mail à l’aide de Mailjet via Guzzle en PHP

Vous pouvez utiliser Guzzle pour envoyer vos e-mails. Votre application s’exécute probablement sur un framework ou un CMS où vous utilisez un Composer pour gérer les bibliothèques. Dans ce cas, Guzzle serait une meilleure option que cURL.

Dans ce scénario, installez la bibliothèque Guzzle en exécutant la commande :

composer require guzzlehttp/guzzle

Après avoir installé la bibliothèque, en utilisant le code ci-dessous, vous pouvez envoyer des e-mails en utilisant Guzzle en PHP.

<?php
require_once "vendor/autoload.php";
  
use GuzzleHttpClient;
  
$body = [
    'Messages' => [
        [
        'From' => [
            'Email' => "SENDER_EMAIL_ADDRESS",
            'Name' => "SENDER_NAME"
        ],
        'To' => [
            [
                'Email' => "RECIPIENT_EMAIL_ADDRESS",
                'Name' => "RECIPIENT_NAME"
            ]
        ],
        'Subject' => "Greetings from Mailjet.",
        'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"
        ]
    ]
];
  
$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => 'https://api.mailjet.com/v3.1/',
]);
  
$response = $client->request('POST', 'send', [
    'json' => $body,
    'auth' => ['API_KEY', 'SECRET_KEY']
]);
  
if($response->getStatusCode() == 200) {
    $body = $response->getBody();
    $response = json_decode($body);
    if ($response->Messages[0]->Status == 'success') {
        echo "Email sent successfully.";
    }
}

Envoyer un e-mail à l’aide du serveur SMTP Mailjet et de PHPMailer

Dans les étapes ci-dessus, nous avons discuté de l’utilisation de l’API de messagerie Mailjet pour l’envoi d’e-mails. Dans cette section, je vous montre comment utiliser le serveur SMTP de Mailjet pour envoyer un email aux utilisateurs.

Depuis le tableau de bord, cliquez sur ‘Configurer mon SMTP’. Sur la page suivante, vous obtiendrez toutes les informations d’identification SMTP.

Envoyer un e-mail à l'aide de Mailjet (alternative au serveur SMTP de Gmail) en PHP

Voyons comment utiliser les identifiants SMTP en PHP et envoyer un e-mail. Dans un premier temps, installez la bibliothèque PHPMailer dans votre projet en exécutant la commande ci-dessous :

composer require phpmailer/phpmailer

Ensuite, écrivez le code ci-dessous dans votre fichier PHP qui enverra un e-mail via vos informations d’identification SMTP.

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
  
require_once "vendor/autoload.php";
  
$mail = new PHPMailer(true);
  
try {
    $mail->isSMTP();
    $mail->Host = 'MAILJET_SMTP_SERVER'; // host
    $mail->SMTPAuth = true;
    $mail->Username = 'API_KEY'; //username
    $mail->Password = 'SECRET_KEY'; //password
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587; //smtp port
    
    $mail->setFrom('SENDER_EMAIL_ADDRESS', 'SENDER_NAME');
    $mail->addAddress('RECIPIENT_EMAIL_ADDRESS', 'RECIPIENT_NAME');
  
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
  
    $mail->send();
    echo 'Email has been sent.';
} catch (Exception $e) {
    echo 'Email could not be sent. Mailer Error: '. $mail->ErrorInfo;
}

Envoyer un e-mail à l’aide du serveur SMTP Mailjet et de Swift Mailer

Comme PHPMailer, Swift Mailer est également une bibliothèque populaire utile pour envoyer un e-mail à l’aide du serveur SMTP. Vous devez disposer de PHP version 7.0 ou supérieure pour envoyer des e-mails à l’aide de la bibliothèque Swift Mailer. Installez la bibliothèque Swift Mailer à l’aide de la commande :

composer require swiftmailer/swiftmailer

Lors de l’installation de la bibliothèque, en utilisant les informations d’identification du serveur SMTP Mailjet, vous pouvez envoyer l’e-mail via le code ci-dessous.

<?php
require_once 'vendor/autoload.php';
  
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('MAILJET_SMTP_SERVER', 587, 'tls'))
      ->setUsername('API_KET')
      ->setPassword('SECRET_KEY')
    ;
  
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
  
    // Create a message
    $body = '<b>Email Body</b>';
  
    $message = (new Swift_Message('Email Subject'))
      ->setFrom(['SENDER_EMAIL_ADDRESS' => 'SENDER_NAME'])
      ->setTo(['RECIPIENT_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
  
    // Send the message
    $mailer->send($message);
  
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Remplacez les espaces réservés par les valeurs réelles et testez le code. Le destinataire doit avoir reçu l’e-mail.

Conclusion

Dans ce tutoriel, nous avons étudié l’API de messagerie et le relais SMTP de Mailjet. Nous avons discuté de l’envoi d’un e-mail via l’API de messagerie Mailjet en utilisant cURL et Guzzle. Mailjet fournit un serveur SMTP, nous avons donc écrit un code qui utilise le serveur SMTP Mailjet et envoie un e-mail aux utilisateurs. Ainsi, sur la base de ces 3 options, les utilisateurs peuvent choisir l’une des options en fonction des exigences de leur projet.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails