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

Invia e-mail utilizzando il server SMTP di Gmail e la libreria Swift Mailer

41

Vuoi inviare le tue email utilizzando il server SMTP di Gmail? Quando utilizzi il server SMTP per le tue e-mail, c’è un’alta probabilità che le tue e-mail vadano nella casella di posta dell’utente e non nello spam. Il server SMTP impedisce che le tue e-mail vengano contrassegnate come spam. In questo articolo, studiamo come inviare e-mail utilizzando il server SMTP di Gmail e la libreria Swift Mailer.

In qualità di proprietario di un sito, desideri sempre che la tua email vada direttamente nella casella di posta dell’utente e non nello spam o nella posta indesiderata. Aumenta la probabilità che l’utente legga la tua email e intraprenda l’azione che desideri.

Perché è necessario utilizzare il server SMTP?

Per un sito Web, è normale avere un modulo che invia un’e-mail a utenti o amministratori. Può essere la tua newsletter, il modulo di contatto o il processo di registrazione in cui devi inviare un’e-mail come riconoscimento.

PHP fornisce una mail()funzione per l’invio di email. Tuttavia, se il tuo server non configura correttamente le impostazioni della posta, questo metodo non funziona. Un’altra possibilità è che quando invii e-mail utilizzando il mail()metodo, può finire nello spam.

Per superare queste 2 situazioni, dovresti utilizzare il server SMTP per l’invio delle tue e-mail.

Utilizzando la libreria Swift Mailer, l’utente può utilizzare qualsiasi server SMTP come Gmail, Sendgrid, Mandrill o il proprio server SMTP fornito dall’hosting per inviare le e-mail. In questo tutorial, scelgo un server SMTP di Gmail.

Detto questo, diamo un’occhiata a come utilizzare la libreria Swift Mailer per l’invio di e-mail.

Installazione di Swift Mailer

Per utilizzare la libreria Swift Mailer, dovresti avere la versione PHP 7.2 o successiva sul tuo server. Se stai utilizzando la versione precedente, aggiornala all’ultima versione PHP. La maggior parte dei provider di hosting come Bluehost aggiorna la versione PHP su richiesta. Non è necessario investire tempo per aggiornare la versione.

Andando avanti, consiglio di utilizzare Composer per installare la libreria Swift Mailer. Apri il terminale nella directory principale del tuo progetto ed esegui il comando:

composer require swiftmailer/swiftmailer

Poiché utilizzeremo Gmail SMTP, devi modificare alcune impostazioni sul tuo account Google. Accedi al tuo account Google e fai clic su Account. Una volta che sei nella pagina dell’account Google, fai clic su Sicurezza. Scorri verso il basso e troverai le impostazioni "Accesso alle app meno sicure". Impostalo su ON.

Invia e-mail utilizzando il server SMTP di Gmail e la libreria Swift Mailer

Invia e-mail utilizzando il server SMTP di Gmail e la libreria Swift Mailer

A questo punto, sei pronto con la libreria Swift Mailer e hai anche modificato le impostazioni dell’account Gmail. Ora, sei a posto per andare avanti.

Supponiamo che tu abbia un file in sendmail.phpcui devi scrivere un codice che invia e-mail. Scrivi il codice seguente nel tuo file PHP.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Nel codice sopra, ho passato i valori seguenti per le impostazioni del server SMTP di Gmail.

  • Indirizzo del server SMTP di Google: smtp.googlemail.com
  • Porta SMTP di Gmail: 465
  • Crittografia: ssl

Oltre a questi valori, devi modificare altri segnaposto come YOUR_GMAIL_USERNAME, YOUR_GMAIL_PASSWORD, ecc.

Dopo aver sostituito tutti i valori, esegui questo file su un browser. Dovresti ricevere l’e-mail nella posta in arrivo, non nello spam.

Invia allegati singoli o multipli in un’e-mail

A volte potrebbe essere necessario inviare allegati in un’e-mail. Utilizzando Swift Mailer puoi inviare allegati singoli o multipli come segue:

$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png')); //absolute path for your attachment
$message->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'));

Tutto quello che devi fare è usare il attachmetodo e passare il percorso assoluto del file che devi inviare come allegato. Qui presumo che tu debba inviare "sample.png" e "sample-ebook.pdf" come allegati.

Quindi il nostro codice finale è il seguente.

sendmail.php

<?php
require_once 'vendor/autoload.php';
 
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('smtp.googlemail.com', 465, 'ssl'))
      ->setUsername('YOUR_GMAIL_USERNAME')
      ->setPassword('YOUR_GMAIL_PASSWORD')
    ;
 
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
 
    // Create a message
    $body = 'Hello, <p>Email sent through <span style="color:red;">Swift Mailer</span>.</p>';
 
    $message = (new Swift_Message('Email Through Swift Mailer'))
      ->setFrom(['FROM_EMAIL_ADDRESS' => 'FROM_NAME'])
      ->setTo(['RECEPIENT_1_EMAIL_ADDRESS'])
      ->setCc(['RECEPIENT_2_EMAIL_ADDRESS'])
      ->setBcc(['RECEPIENT_3_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample.png'))
      ->attach(Swift_Attachment::fromPath(__DIR__. '/sample-ebook.pdf'))
    ;
 
    // Send the message
    $mailer->send($message);
 
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Si tratta di inviare e-mail tramite la libreria Swift Mailer. Puoi anche usare Symfony Swift Mailer per inviare messaggi tramite alcuni server SMTP come Mailgun, Mandrill, ecc. Vorrei sentire i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

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