✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

85

I proprietari del sito web devono inviare regolarmente e-mail ai nostri utenti. Se stai usando la funzione mail() di PHP per inviare e-mail, presto ti renderai conto che le tue e-mail finiscono nello spam e non nella casella di posta dell’utente. Di conseguenza, la maggior parte degli utenti non nota le tue email importanti. Per risolvere questo problema devi utilizzare i server SMTP per inviare le tue email.

Il server SMTP di Gmail è una scelta piuttosto popolare tra gli sviluppatori. Ma ci sono 2 problemi nell’utilizzo di questo servizio Google. Innanzitutto, non è stato possibile impostare l’indirizzo "da" durante l’invio dell’e-mail. Gmail imposta il tuo indirizzo email (ID email di Google) come indirizzo del mittente. In secondo luogo, è necessario attivare l’impostazione "Consenti app meno sicure" che non è consigliata da Google.

Per evitare queste limitazioni, ho trovato una soluzione alternativa per il server SMTP di Gmail che è Mailjet. Mailjet è un servizio di consegna e-mail per team di marketing e sviluppatori. Possiamo inviare facilmente e-mail utilizzando Mailjet in PHP. Forniscono la propria API di posta elettronica per sparare e-mail. Puoi anche utilizzare il loro servizio SMTP.

Iniziare

Mailjet fornisce una quota di 6000 email gratuite al mese (200 email al giorno). Per le piccole imprese, questa quota gratuita è sufficiente. Se la tua azienda ha bisogno di più e-mail, controlla la loro pagina dei prezzi.

Durante il processo di registrazione, ti verrà chiesto di scegliere il metodo di invio. In questo tutorial, discutiamo sia dell’API di posta elettronica che dell’inoltro SMTP, quindi, per ora, scegli l’opzione API.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

Segui i passaggi successivi. Dalla schermata sottostante premi il pulsante "Inizia" nella sezione sviluppatore.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

Per ottenere le tue chiavi API, vai su "Impostazioni account". Nella pagina successiva, nella sezione API REST, fare clic su "Gestione chiave API principale e chiave API secondaria". Copia la chiave API e la chiave segreta che sono richieste nei passaggi successivi.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

Mailjet ci consente di impostare l’indirizzo del mittente. In "Mittenti e domini" fai clic su "Aggiungi un dominio o indirizzi del mittente" e nella pagina successiva aggiungi un indirizzo del mittente.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

Se stai impostando un indirizzo diverso dall’email del tuo account, riceverai un’email per la verifica.

Invia e-mail utilizzando Mailjet tramite cURL in PHP

Siamo pronti con le nostre chiavi API e pronti per inviare la nostra e-mail utilizzando Mailjet e cURL in PHP. Assicurati di avere cURL abilitato sul tuo server, altrimenti il ​​seguente codice non funzionerà come previsto. Sostituisci i segnaposto con i valori effettivi prima di eseguire il codice seguente.

<?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.";
}

Invia e-mail utilizzando Mailjet tramite Guzzle in PHP

Potresti voler usare Guzzle per inviare le tue e-mail. Probabilmente la tua applicazione è in esecuzione su un framework o CMS in cui stai utilizzando un Composer per la gestione delle librerie. In tal caso, Guzzle sarebbe un’opzione migliore rispetto a cURL.

In questi scenari installa la libreria Guzzle eseguendo il comando:

composer require guzzlehttp/guzzle

Dopo aver installato la libreria, utilizzando il codice sottostante è possibile inviare e-mail utilizzando Guzzle in 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.";
    }
}

Invia e-mail utilizzando il server SMTP Mailjet e PHPMailer

Nei passaggi precedenti, abbiamo discusso dell’utilizzo dell’API di posta elettronica Mailjet per l’invio di e-mail. In questa sezione, ti mostro come utilizzare il server SMTP di Mailjet per inviare un’e-mail agli utenti.

Dal pannello di controllo, fai clic su "Configura il mio SMTP". Nella pagina successiva, otterrai tutte le credenziali SMTP.

Invia e-mail utilizzando Mailjet (alternativa al server SMTP di Gmail) in PHP

Vediamo come utilizzare le credenziali SMTP in PHP e inviare una mail. Innanzitutto, installa la libreria PHPMailer nel tuo progetto eseguendo il comando seguente:

composer require phpmailer/phpmailer

Quindi, scrivi il codice seguente nel tuo file PHP che invierà un’e-mail tramite le tue credenziali 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;
}

Invia e-mail utilizzando il server SMTP Mailjet e Swift Mailer

Come PHPMailer, anche Swift Mailer è una libreria popolare utile per inviare un’e-mail utilizzando il server SMTP. Dovresti avere la versione PHP 7.0 o successiva per inviare email utilizzando la libreria Swift Mailer. Installa la libreria Swift Mailer usando il comando:

composer require swiftmailer/swiftmailer

Al momento dell’installazione della libreria, utilizzando le credenziali del server SMTP Mailjet è possibile inviare l’e-mail tramite il codice sottostante.

<?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();
}

Sostituire i segnaposto con i valori effettivi e testare il codice. Il destinatario dovrebbe aver ricevuto l’e-mail.

Conclusione

In questo tutorial, abbiamo studiato l’API e-mail di Mailjet e l’inoltro SMTP. Abbiamo discusso dell’invio di un’e-mail tramite l’API di posta elettronica Mailjet utilizzando cURL e Guzzle. Mailjet fornisce un server SMTP, quindi abbiamo scritto un codice che utilizza il server SMTP di Mailjet e invia un’e-mail agli utenti. Quindi, in base a queste 3 opzioni, gli utenti possono scegliere una qualsiasi delle opzioni in base ai requisiti del progetto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More