Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Funzione mail() configurare smtp, non posso utilizzare il file php.ini

    Ciaoa tutti,

    ho un hosting su server linux.
    Il processo di registrazione manda una email con il link di conferma all'utente e una copia a me.
    Il fatto è che che alcune volte, diciamo il 70%, le due email non vengono inviate.
    Ho contattato l'assistenza dell'hosting e mi hanno detto che devo configurare smtp dalla funzione mail per poter effettuare l'operazione di invio in modo corretto, non mi hanno fornito ulteriori spiegazioni del perché alcune volte arrivano e altre no, il problema si era già presentato ma apportando modifiche allla linea del charset=UTF-8, sembrava si fosse risolto!

    Io ho questa classe che mi gestisce l'invio delle email:
    Codice PHP:
    class Posta {
        public static function 
    invia($email$oggetto$testo) {
            
    $msg wordwrap($testo70);       
            
    $emailRisultato=mail($email$oggetto$msgself::getHeader());
          
            if (
    $emailRisultato) {
                return 
    $emailRisultato;
            } else {
                return 
    FALSE;
            }
        }

        private static function 
    getHeader() {
            
    $headers="";
            
    $headers "MIME-Version: 1.0" "\r\n";
            
    $headers .="Content-type:text/html;charset=UTF-8" "\r\n";
            
    $headers .='From: <no-reply@nome_del_mio_dominio.com>' "\r\n";
            
            return 
    $headers;
        }


    Dove e come posso configurare l'smtp?
    ...immagino dovrò anche configurare utente e password, giusto?

    Grazie,
    Roberto

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non vengono inviate o non vengono ricevute? oppure finiscono nella cartella di spam?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Per quanto riguarda php a me risultano inviate, da php mi viene restituito TRUE(sempre), poi non so cosa succeda in quanto il servizio di assistenza non me l'ha detto, mi ha solo detto che devo configurare l'smtp.
    Il problema è appunto che il 70% delle volte non arrivano a destinazione, entrambe(sia l'riginale all'utente, che la mia copia).

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    per fare qualche test, prova ad usare sistemi alternativi alla funzione mail(), cose tipo PHPMailer che consente di personalizzare vari parametri tra cui SMTP

    il tuo hosting è windows o linux?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Linux
    Ti riferisci a questo?
    https://github.com/PHPMailer/PHPMailer


  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Si, phpmailer è quello

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Si, phpmailer è quello
    Buono a sapersi, grazie, non lo conoscevo!
    Adesso provo e poi ti faccio sapere!

    Grazie ancora!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Si, phpmailer è quello
    Ciao,

    sto provando ad utilizzare PHPMailer il problema è che continua a darmi 'SMTP connect() failed'.
    2015-09-21 10:35:35 SERVER -> CLIENT: 220 relayout07-dsp.dominioprovider.net ESMTP
    2015-09-21 10:35:35 CLIENT -> SERVER: EHLO www.miodominio.com
    2015-09-21 10:35:35 SERVER -> CLIENT: 250-relayout07-dsp.dominioprovider.net 250-PIPELINING 250-SIZE 102400000 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
    2015-09-21 10:35:35 CLIENT -> SERVER: STARTTLS 2015-09-21 10:35:35 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
    2015-09-21 10:35:35 SMTP Error: Could not connect to SMTP host.
    2015-09-21 10:35:35 CLIENT -> SERVER: QUIT 2015-09-21 10:35:35 SERVER -> CLIENT:
    2015-09-21 10:35:35 SMTP ERROR: QUIT command failed:
    2015-09-21 10:35:35 SMTP connect() failed.

    Ho provato ad utilizzare un programma di test per smtp (SMTP Console socketlabs) e i parametri che io utilizzo in php non mi danno problemi, ovvero la connessione autentificata, tramite questo software, avviene con successo(Authentication successful)!

    Il metodo che utilizzo è il seguente, ovviamente miodominio è sostituito per quello reale e anche la password è sostituita per quella reale.
    Codice PHP:
    public function invia2($email$oggetto$testo) {
            
    $mail = new PHPMailer;
            
    $mail->CharSet 'UTF-8';
            
    $mail->isSMTP();                                    
            
    $mail->Host 'smtp.miodominio.com';  
            
    $mail->SMTPAuth true;                              
            
    $mail->Username 'no-reply.miodominio.com';                 
            
    $mail->Password 'qui_la_password';                          
            
    //$mail->SMTPSecure = 'tls';  //decommentando questa linea il problema persiste                           
            
    $mail->Port 587;                                  

            
    $mail->setFrom('no-reply@miodominio.com');
            
    $mail->addAddress($email); 

            
    $mail->isHTML(true);            

            
    $mail->Subject $oggetto;
            
    $mail->Body $testo


            if (!
    $mail->send()) {
                echo 
    $mail->ErrorInfo;
                return 
    FALSE;
            } else {
                return 
    TRUE;
            }
        } 
    Hai qualche suggerimento da darmi?
    ...qualsiasi cosa è ben accetta, grazie!


    Roberto
    Ultima modifica di robynosse; 21-09-2015 a 12:40

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    il test lo fatto direttamente dal server?
    non vorrei che ci fosse qualche blocco (e potresti chiedere a chi ti fornisce il servizio)

    la cosa "semplice" che potresti fare è usare il SMTP di Gmail (ad esempio) che è TLS con autenticazione, così sai se lo script funziona

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da clasku Visualizza il messaggio
    il test lo fatto direttamente dal server?

    Quote Originariamente inviata da clasku Visualizza il messaggio
    non vorrei che ci fosse qualche blocco (e potresti chiedere a chi ti fornisce il servizio)
    Cosa intendi per blocco?

    Quote Originariamente inviata da clasku Visualizza il messaggio
    la cosa "semplice" che potresti fare è usare il SMTP di Gmail (ad esempio) che è TLS con autenticazione, così sai se lo script funziona
    Ho chiesto a chi mi fornisce il servizio di chiarirmi che cosa è successo a quella determinata ora, vediamo un po'!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.