PHPMailer: SMTP error Gmail

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Ciao a tutti, sto cercando di introdurre nel mio sito web l'invio di una mail automatica tramite PHPMailer ma mi restituisce errore SMTP error: could not connect to SMTP host.

Le operazioni che ho eseguito sono:

php.ini --> Abilitato extension=php_openssl.dll

Il mio codice:
PHP:
<?php
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
 
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPDebug = 2;
    $mail->CharSet    = "UTF-8";
    $mail->SMTPSecure = 'tls';
    $mail->Host       = "smtp.gmail.com";
    $mail->Port       = 587;
    $mail->SMTPAuth   = true;
    $mail->Username   = "[email protected]";
    $mail->Password   = "***************";
 
    $mail->From = '[email protected]';
    $mail->FromName = 'me stesso';
    $mail->addAddress('[email protected]');
 
    $mail->IsHTML(true);
    $mail->Subject = 'Titolo di prova';
    $mail->Body = 'Messaggio di prova';
    $mail->WordWrap = 80;
 
    if(!$mail->Send()) echo "Invio mail non riuscito!";
    else echo "Mail inviata correttamente!";
?>
Ho provato a passare i medesimi dati ad un amico che usa Laravel ed è riuscito, ovviamente su altro pc

Sul mio riesco a pingare ovviamente il server SMTP di Gmail ed ho configurato entrambe le mail

Allego anche output messaggi

Non so più dove sbattere la testa...pensavo fosse una cosa banale da fare!
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@Giulo77
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
prova con questi parametri
PHP:
$eM_Host     = "smtp.gmail.com";
$eM_Port     = 465;
$eM_Auth     = true;
$eM_Secure   = "ssl";
 

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Già provato, mi da errore più velocemente e non ho nessun messaggio client/server oltre all'errore connessione SMTP
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Codice:
CLIENT -> SERVER: PHPmailer Test <b>smtp.gmail.com</b> 15-03-2018 15:22:25 <br /><br /> inviato a .....
con i parametri suggeriti, funziona,

per verificare il tuo script, inserisci le opzioni di debug
PHP:
$mail = new PHPMailer();

$mail->SMTPDebug = 4;
$mail->Debugoutput = "error_log";

leggiti quanto registrato nel log di php e verifica l'errore di connessione
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
ps, queste sono le prime due righe del log
Codice:
Connection: opening to ssl://smtp.gmail.com:465, timeout=300, options=array ()
 Connection: opened
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
provato e funzionante con la versione 6.0.3,
sistema i "require", lascia ssl e 465
PHP:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\OAuth;
use PHPMailer\PHPMailer\Exception;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
require 'src/OAuth.php';

$mail = new PHPMailer(true);                               // Passing `true` enables exceptions
try {
    //Server settings
    $mail->isSMTP();                                       // Set mailer to use SMTP
    $mail->SMTPDebug   = 4;                                // Enable verbose debug output
    $mail->Debugoutput = "error_log";
    $mail->Host        = 'smtp.gmail.com';                 // Specify main and backup SMTP servers
    $mail->Port        = 465;                              // TCP port to connect to
    $mail->SMTPAuth    = true;                             // Enable SMTP authentication
    $mail->SMTPSecure  = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Username    = '[email protected]';        // SMTP username
    $mail->Password    = 'secret';                         // SMTP password

    //Recipients
    $mail->setFrom('[email protected]', 'Mailer');
    $mail->addAddress('[email protected]', 'Recipient User');      // Add a recipient
    $mail->addReplyTo('[email protected]', 'Information');

//  $mail->addAddress('[email protected]');                   // Name is optional
//  $mail->addCC('[email protected]');
//  $mail->addBCC('[email protected]');

    //Attachments
//  $mail->addAttachment('/var/tmp/file.tar.gz');          // Add attachments
//  $mail->addAttachment('/tmp/image.jpg', 'new.jpg');     // Optional name

    //Content
    $mail->isHTML(true);                                   // Set email format to HTML
    $mail->CharSet     = "UTF-8";
    $mail->Subject     = 'Here is the subject';
    $mail->Body        = '<b>This is the HTML message body in bold!</b>';
    $mail->AltBody     = 'This is the body in plain text for non-HTML mail clients';
    $mail->WordWrap    = 80;

    $mail->send();
    echo 'Message has been sent';
}
catch (Exception $e) {
    echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
?>
 

Giulo77

Utente Attivo
15 Mar 2018
30
0
6
46
Ho trovato la soluzione finalmente! ;)

Mi è bastato aggiungere il seguente codice:

Codice:
    $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
        )
    );
 
Discussioni simili
Autore Titolo Forum Risposte Data
P [PHPmailer] SMTP Aruba.. problemi PHP 8
G Invio Mail con PHPMailer, problemi SMTP PHP 7
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
L Problema phpmailer,jquery e smtp PHP 1
R Phpmailer SMTP PHP 23
G phpmailer e php 8.1 con estensione mysqli PHP 6
E Hosting e phpmailer PHP 0
E PHPMailer PHP 4
D PHPMailer con account gmail PHP 14
I PHPMailer non funziona PHP 13
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
A PHPMAILER e UMLAUTS (lettere tedesche äüäöß) PHP 2
M Come usare la nuova versione di phpmailer? PHP 2
V PHPMailer PHP 11
V PHPmailer allegato PHP 0
P problemi invio email con phpmailer PHP 47
P phpmailer PHP 0
localhost.nicola File log erroe con phpmailer PHP 3
A problema phpmailer PHP 32
O PhpMailer, Composer e Netbeans PHP 1
M Come inviare due mail diverse con phpmailer PHP 6
Z email phpmailer non arrivano PHP 0
B Invio email multiple PHPMAILER PHP 3
P Problemi visualizzazione html con phpmailer PHP 6
P phpmailer e file_get_contents PHP 1
P Phpmailer ed wind-infostrada PHP 20
felino PHPMailer: Indirizzo IP e Immagine PHP 6
lsnight Phpmailer per principianti PHP 7
K form con phpmailer PHP 18
P Invio multiplo mail con phpmailer PHP 5
L problema classe phpmailer con la mia classe clsMail PHP 2
G problema con phpmailer 5.2.1 PHP 1
minatore Phpmailer PHP 6
M phpmailer multiplo in più pagine di un sito PHP 5
N PhpMailer SELECT e OPTION PHP 190
N PhpMailer e salvataggio allegato sul server PHP 11
A problema con phpmailer PHP 10
metalgemini PHPmailer non arriva allegato PHP 10
piccino PHPMailer: inserire allegato PHP 5
E Invio email (era: phpmailer) PHP 52
F Phpmailer e l'indirizzo del mittente PHP 3
F PhpMailer PHP 5
borgo italia phpmailer?? PHP 7
C phpmailer PHP 7
emanuelevt phpmailer e altervista PHP 3
catellostefano Problema con la classe class.phpmailer.php PHP 5
SolidSnake4 PHPmailer errore PHP 4
A classe PHPMailer e mail di Libero PHP 1
S php mail vs phpmailer PHP 0
T Problemi phpmailer x invio ad indirizzi di libero. Aiutatemi! PHP 14

Discussioni simili