Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Funzione mail(), a volte invia a volte no

    Ciao a tutti,

    ho un hosting su server Linux.
    L'iscrizione degli utenti si basa sull'invio di un link di conferma all'indirizzo email dell'utente, in copia ne ricevo anche una io.
    Anche il cambio della password si basa sull'invio di un link che ti rimanda ad una pagina per cambiarla!

    Il problema è che alcune volte l'email viene inviata e a volte no, non riesco a capire il motivo, né io né l'utente la riceviamo!
    Non è legato al dominio in quanto se cancello l'utente e provo a rifare la procedura d'iscrizione, può essere che arrivi l'email allo stesso utente(e a me) a cui prima non era arrivata!

    In che modo posso vedere la risposta del server mail da php per capire qual è il problema?

    Altri consigli? qualsiasi cosa è ben accetta!
    Ditemi se vi serve vedere la porzione di codice, che la posto....

    Grazie,
    Roberto

  2. #2
    senza postare il codice di invio delle email è difficile capire da cosa dipenda, che io sappia non c'è una risposta, velocemente potresti insieme all'invio salvare nel db i dati delle mail (destinatario, messaggio, ora di invio) magari ti accorgi che è qualche errore di qualche carattere che manda in errore l'invio mail, oppure altro

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da phpneo Visualizza il messaggio
    senza postare il codice di invio delle email è difficile capire da cosa dipenda, che io sappia non c'è una risposta, velocemente potresti insieme all'invio salvare nel db i dati delle mail (destinatario, messaggio, ora di invio) magari ti accorgi che è qualche errore di qualche carattere che manda in errore l'invio mail, oppure altro
    Ciao e grazie della risposta.

    Il codice che uso è il seguente:
    Codice PHP:
    class Posta {
        
        public static function 
    invia($email$oggetto$testo) {
            
    $msg wordwrap($testo70);    
            return 
    mail($email$oggetto$msgself::getHeader());  
        }

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

    no-reply@dominio.com è ovviamente sostituito con un indirizzo email reale ed esistente

    Per inviare l'email utilizzo
    Codice PHP:
    Posta::invia($email$oggetto$testo); 
    $email è l'email di destinazione, ad esempio uso la mia.
    $oggetto="bla bla bla";
    $testo è il codice html dell'email da inviare.

    Il codice Posta::invia($email, $oggetto, $testo); mi restituisce sempre TRUE!

    Grazie,
    Roberto

  4. #4
    il codice è corretto, ripeto quando invia prova a salvare anche nel db, il TRUE nella funzione mail indica solo che il tuo server processa correttamente la mail, non tiene conto che invia o no la mail e neanche se arrivi
    Ultima modifica di phpneo; 13-09-2015 a 13:31

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da phpneo Visualizza il messaggio
    il codice è corretto, ripeto quando invia prova a salvare anche nel db, il TRUE nella funzione mail indica solo che il tuo server processa correttamente la mail, non tiene conto che invia o no la mail e neanche se arrivi
    Ho fatto un var_dump di quello che invio, la data di invio la registro in un db, quindi potrei comuque saperla.

    Codice PHP:
    mail($email$oggetto$msgself::getHeader()); 
    Codice PHP:
    var_dump($email);
    string(23"XXXXXXX@yahoo.it" 
    Codice PHP:
    var_dump($oggetto);
    string(78"COPIA (XXXXXXXXX@yahoo.it) - Link verifica cambio password - xxxxxxxxxxxxx" 

    Codice PHP:
    var_dump($msg);
    string(615"

    Ciao XXXX,

    hai ricevuto questa email in quanto non ricordi più la password di accesso al sito xxxxxxxxx.com

    Per cambiare la password clicca direttamente nel seguente link, oppure copialo e incollalo sulla barra di navigazione.

    http://www.XXXXXXXXXXXXXX.com/it/verifica/cambio-password/70eb9a2d49xxxxxxxxxb63d3ea6.html

    Grazie,
    XXXXXXXXXXX.com

    Codice PHP:
    var_dump(self::getHeader());
    string(91"MIME-Version: 1.0 Content-type: text/html; charset=utf8 From: no-reply@XXXXXXXXXXX.com " 
    Grazie,
    Roberto

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.