...
✅ 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 dallo script PHP

344

La posta elettronica svolge un ruolo importante nel sito web. Ogni sito Web di solito deve inviare e-mail agli utenti. Queste e-mail possono essere inviate dalla pagina dei contatti, dalla newsletter, dal modulo di registrazione, ecc.

PHP fornisce una mail()funzione che viene utilizzata per inviare un’e-mail. Ma ci sono limitazioni durante l’utilizzo del mail()metodo. Non puoi inviare email da un server di sviluppo locale. Un altro svantaggio è che c’è un’alta possibilità che la tua email finisca in uno spam.

Nella maggior parte dei casi, il mail()metodo non invia nemmeno un’e-mail. Ciò potrebbe essere dovuto alla configurazione del server errata o a qualcos’altro.

Per uscire da questi problemi o limitazioni, è possibile utilizzare il server SMTP per inviare le e-mail.

In questo articolo, studiamo come utilizzare PHPMailer e il server SMTP di Gmail per l’invio di email.

Installazione

Per prima cosa devi installare la libreria PHPMailer nel tuo progetto. Il modo consigliato per installare una libreria è tramite Composer.

Apri il prompt dei comandi nella directory principale del tuo progetto ed esegui il comando seguente.

composer require phpmailer/phpmailer

Poiché utilizziamo Gmail SMTP, devi modificare alcune impostazioni sul tuo account Google. Accedi al tuo account Google e fai clic su Il mio account. Una volta che sei nella pagina Il mio account, 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 dallo script PHP

Successivamente, dobbiamo scrivere un codice che invii un’e-mail utilizzando la libreria PHPMailer e il server SMTP di Gmail.

Script PHP per l’invio di e-mail utilizzando il server SMTP di Gmail

Apri il tuo file PHP dove devi scrivere un codice per le email. Ad esempio, presumo che tu abbia un sendemail.phpfile nella directory principale.

sendemail.php

<?php
//Import PHPMailer classes into the global namespace
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once 'vendor/autoload.php';
 
$mail = new PHPMailer(true);
?>

Nel codice sopra, ho incluso l’ambiente della libreria PHPMailer nel file PHP.

Successivamente, per inviare e-mail utilizzando PHPMailer, l’utente deve passare l’indirizzo del server SMTP di Gmail, la porta SMTP per Gmail e l’autenticazione SMTP (che non è altro che il nome utente e la password di un account Google).

$mail->isSMTP();
$mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
$mail->SMTPAuth = true;
$mail->Username = 'GMAIL_USERNAME';   //username
$mail->Password = 'GMAIL_PASSWORD';   //password
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;                    //SMTP port

Questo è tutto! Hai finito con la configurazione. Ora puoi procedere con l’invio di un’e-mail a un utente.

$mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
$mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
$mail->isHTML(true);
 
$mail->Subject = 'Email subject';
$mail->Body    = '<b>Email Body</b>';
 
$mail->send();
echo 'Message has been sent';

Sostituisci i segnaposto con i valori effettivi. Esegui questo file su un browser e la tua email dovrebbe essere inviata all’indirizzo email del destinatario.

Invio di allegati in un’e-mail

Utilizzando la libreria PHPMailer è possibile inviare allegati singoli o multipli in una e-mail. Tutto quello che devi fare è passare un percorso di directory dei tuoi allegati al metodo addAttachmentcome segue.

$mail->addAttachment(__DIR__. '/attachment1.png');
$mail->addAttachment(__DIR__. '/attachment2.jpg');

Il nostro codice finale è il seguente.

sendemail.php

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
 
require_once "vendor/autoload.php";
require_once "constants.php";
 
$mail = new PHPMailer(true);
 
try {
    $mail->isSMTP();
    $mail->Host = 'smtp.googlemail.com';  //gmail SMTP server
    $mail->SMTPAuth = true;
    $mail->Username = GMAIL_USERNAME;   //username
    $mail->Password = GMAIL_PASSWORD;   //password
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;                    //smtp port
  
    $mail->setFrom('FROM_EMAIL_ADDRESS', 'FROM_NAME');
    $mail->addAddress('RECEPIENT_EMAIL_ADDRESS', 'RECEPIENT_NAME');
 
    $mail->addAttachment(__DIR__. '/attachment1.png');
    $mail->addAttachment(__DIR__. '/attachment2.png');
 
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
 
    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: '. $mail->ErrorInfo;
}
?>

Spero che tu capisca come inviare e-mail utilizzando il server SMTP di Gmail da uno script PHP. Per favore condividi i tuoi pensieri e suggerimenti in un commento 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