Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problemi PHPMailer

  1. #1

    Problemi PHPMailer

    Salve a tutti,

    ho guardato i post attinenti questo problema esistenti nel forum, ma nessuna delle soluzioni
    indicate ha risolto il mio problema.

    Probabilmente � un problema legato alla configurazione del mio server locale :
    EASY PHP 1.6.1.1 - PHP 5.6.19.

    Questo e' il pezzo di PHP.ini che credo sia d'interesse :


    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = localhost
    ; http://php.net/smtp-port
    smtp_port = 25






    Ho provato utilizzando un sorgente fornito con la libreria modificando solo i parametri
    delle email ma ricevo sempre lo stesso errore :


    SERVER -> CLIENT: 220 smtp.gmail.com ESMTP y126sm63055wmg.29 - gsmtp
    CLIENT -> SERVER: EHLO localhost
    SERVER -> CLIENT: 250-smtp.gmail.com at your service, [5.170.10.21]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250 SMTPUTF8
    CLIENT -> SERVER: STARTTLS
    SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
    SMTP Error: Could not connect to SMTP host.
    CLIENT -> SERVER: QUIT

    Questo e' il sorgente :

    <php>

    date_default_timezone_set('Etc/UTC');

    require '../PHPMailerAutoload.php';


    $mail = new PHPMailer;

    $mail->isSMTP();

    $mail->SMTPDebug = 2;


    $mail->Debugoutput = 'html';


    $mail->Host = gethostbyname('smtp.gmail.com');


    $mail->Port = 587;



    $mail->SMTPSecure = 'tls';


    $mail->SMTPAuth = true;


    $mail->Username = "mark.xxxxxxx@gmail.com";




    $mail->Password = "xxxxxxxxxx";




    $mail->setFrom('mark.xxxxxxxx@gmail.com', 'First Last');




    $mail->addReplyTo('mauro.xxxxxxxx@libero.it', 'First Last');




    $mail->addAddress('sixxxxxxxx@gmail.com', 'John Doe');




    $mail->Subject = 'PHPMailer GMail SMTP test';




    $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));




    $mail->AltBody = 'This is a plain-text message body';




    // questo l'ho bloccato per la prova
    // $mail->addAttachment('images/phpmailer_mini.png');
    //



    if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
    echo "Message sent!";
    }
    ?>


    ... ribadisco che il codice e' esattamente quello fornito con la libreria di mio non c'e' nulla
    ... ecco perche' e' strano che non funzioni...


    Ultima modifica di curzio.maria; 03-05-2017 a 23:54 Motivo: Ho cercato di inserire il tag <php>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    la normale funzione mail() ti funziona?

    https://github.com/PHPMailer/PHPMailer/issues/550

    Qui consiglia anche:
    SMTPAutoTLS = false
    SMTPDebug = 4
    Ultima modifica di zacca94; 04-05-2017 a 03:10

  3. #3
    @zacca94 ciao.

    La funzione mail() funziona bene in remoto, anche se nel corso delle prove, effettuate inviando a 4 indirizzi
    di test , ho avuto alcuni problemi di 'rifiuto' da parte di libero e gmail.

    Provo ad impostare i parametri suggeriti, quindi non dovrebbe essere un problema di configurazione locale.

    Grazie

    Tra le molte cose che non ho capito... da quanto leggo in locale non e' possibile inviare email
    senza usare smtp, e' corretto ?

    ....EDIT...

    INCREDIBILE ... ho risolto, mettendo il SMTPDebug=4 ho ricevuto un messaggio d'errore
    piu' chiaro, errore di autenticazione .... cercando il codice errore nel forum di PHPMailer
    ho trovato al soluzione :

    $mail->SMTPOptions = array(
    'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
    )
    );

    al primo tentativo : EMAIL SEND
    Ultima modifica di curzio.maria; 04-05-2017 a 12:27 Motivo: ... dubbio ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    94
    Ciao, riprendo questa discussione perchè nonostante abbia letto diverse guide non ho capito quali parametri devo impostare per inviare mail con phpmailer.

    Assurdo come non ci sia una guida che spieghi per bene ai principianti quali step eseguire.

    Avevo provato per prima la funzione mail() di php ma non funziona.. qualche problema con qualche parametro del php.ini oppure altro, non so.. chi dice una cosa chi un'altra..

    Allora ho letto qualche guida per phpmailer e ho seguito ciò che dicevano:
    1) scaricare lo zip
    2) metterlo in www (uso wamp).. mi dava errore quindi ho provato a metterlo all'interno di un progetto.. ora da altri tipi di errore
    3) Ho copiato il codice presente sempre nella pagina del download. Ho giusto modificato la path dell'istruzione require. A questo punto non so se e come impostare le altre istuzioni.. ho provato a cambiare i campi setFrom, addAdress, subject ecc... Ho seguito un video su youtube che sembra semplicissimo perchè di tutte le impostazioni tieni solo quelle basilari.. A lui funziona a me no..

    Qualcuno sa aiutarmi? Oppure sa dirmi dove trovare una guida semplice (adatta anche per neofiti) che elenchi i vari step da seguire?

  5. #5
    @floky
    Ciao.
    Posso dirti quello che ho fatto io, sono meno che un principiante quindi se ha funzionato per me...
    1) ho scaricato la libreria
    2) l'ho decompressa in una cartella accessibile ai file php che utilizzo :

    main\index.html
    main\php (directory file php)
    main\php\lib (directory con libreria PHPMailer)

    3) ho modificato il file di esempio incluso alla libreria per utilizzare GMAIL come server di posta.
    Tu ovviamente puoi scegliere qualsiasi altro esempio disponibile.
    La libreria viene invocata con : require 'lib/PHPMailerAutoload.php'; dove il path corrisponde a quanto sopra.

    4) Come da post, nella fase di test, ho settato il livello di errore ($mail->SMTPDebug = 2 ) per intercettare gli errori
    ed i warning (che sono molti e utili).

    ... non funzionava ........ allora

    5) Ho aggiunto questo codice :

    Codice PHP:
            $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false'verify_peer_name' =>                     false'allow_self_signed' => true    )); 
    trovato dopo ore in internet, che risolve il problema creato da GMAIL che da gennaio richiede la presenza di un certificato SSL sul server che invia la posta.

    Con questa correzione il file di esempio funziona correttamente.

    Dopo alcuni giorni di prova ho settato ($mail->SMTPDebug = 0 ).
    Io non ho più avuto problemi.
    Sono passato dalla funzione email() di PHP a PHPMailer per due motivi :

    1 con email la posta inviata spesso veniva bloccata come spam
    2 con email() non potevo inviare la posta da localhost quindi era un problema controllare se funzionava.

    Come da post iniziale io uso EASYPHP e la cartella iniziale e' EDS-WWW.

    Spero di esserti stato utile. In ogni caso non esitare a chiedere, il poco che so è sempre a disposizione.
    Ciao
    Ultima modifica di curzio.maria; 25-05-2017 a 14:48

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    94
    Grazie mille curzio.maria, sei stato gentilissimo. Proverò a seguire le tue indicazioni. Ti farò sapere se funzionerà anche per me.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    94
    Ciao curzio, scusa il disturbo.. ho provato a seguire le tue indicazioni ma non funziona. Elenco cosa ho fatto cosi mi dici se ho sbagliato qualcosa.

    1) Scaricato il file zip
    2) Spacchettato e l'ho copiato nella cartella del mio progetto cosi:

    www (wamp)/mioProgetto/index.html
    www/mioProgetto/register.php --> file dove ho copiato il codice necessario
    www/mioProgetto/phpmailer/vari file tra cui anche PHPMailerAutolad.php

    3) Copiato il codice necessario nel mio file register.php e modificato i campi:
    - $mail->host
    - $mail->Username
    - $mail->Password
    - $mail->setFrom
    - $mail->addAddress
    - aggiunto $mail->SMTPOptions
    - impostato $mail -> SMTPDebug = 2

    codice:
    <?php
    require 'phpmailer/PHPMailerAutoload.php'; // ho aggiunto il percorso
    
    $mail = new PHPMailer;
    
    $mail->SMTPDebug = 2;                               // Enable verbose debug output
    
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'mia_mail@gmail.com';                 // SMTP username
    $mail->Password = 'mia_password';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to
    
    $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true    )); 
    
    $mail->setFrom('mia_mail@gmail.com', 'Mailer');
    $mail->addAddress('mail_contatto@libero.it', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');
    
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    $mail->isHTML(true);                                  // Set email format to HTML
    
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
    
    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }
    Vengo reindirizzato su localhost/mioProgetto/register.php e Mi esce un errore incomprensibile.

    Quando ho impostato la mie credenziali gmail mi � uscita una mail da google:

    Controlla il tentativo di accesso bloccato

    Quindi penso che effettivamente si connetta al mio account gmail, giusto?

    Ps: ho trovato questo video dove spiega bene https://www.youtube.com/watch?v=pTLW7Ygw4K4 e dove non sfrutta le impostazioni SMTP ma quella localhost(?) infatti mette solo le informazioni principali. HO provato ma non ha funzionato.

    Incredibile comunque che non ci sia uno straccio di guida/tutorial che spieghi punto per punto cosa fare e che bisogna procedere a tentavi alla cacchio di cane.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.