Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    phpmailer, avere conferma dell'invio oppure errore

    sto usando phpmailer per inviare le email in automatico dal mio sistema di gestione quando un cliente effettua un ordine.
    Qualcuno dice di non riceverla...

    In che modo posso fare il controllo se l'email e' stata spedita correttamente o meno?

    attualmente ho solo il controllo sull'errore, cosi'
    Codice PHP:
    if(!$mail->Send())
    echo 
    "ERRORE NELL INVIO DELLA EMAIL";
    // Pulizia per eventuali altri invii successivi
    $mail->ClearAddresses();
    $mail->ClearAttachments(); 
    c'e' qualcosa che possa darmi la sicurezza dell'invio? (e della ricezione ovviamente)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Puoi solo sapere se è stata inviata, la funzione di invio ritorna true, ma non puoi avere la certezza che arrivi.

    Quelli che dicono di non riceverla sono utenti con caselle Libero ed Hotmail?

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da Alhazred
    Puoi solo sapere se è stata inviata, la funzione di invio ritorna true, ma non puoi avere la certezza che arrivi.

    Quelli che dicono di non riceverla sono utenti con caselle Libero ed Hotmail?
    si bravo, molto spesso libero, hotmail faccio i test sulla mia e arriva, email.it arriva con circa 5-10 minuti di ritardo.
    La maggior parte sono alberghi che hanno indirizzi tipo info@nomehotel.it

    come posso avere almeno la certezza dell'invio? cosa ci aggiungo?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Purtroppo non è un problema tuo, ma dei filtri di Libero, richiedono che il provider da cui proviene la mail sia verificato con il sender-ID o il protocollo SPF.
    Questa cosa deve sistemarla il tuo hosting provider, chiedi lumi all'assistenza.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da Alhazred
    Purtroppo non è un problema tuo, ma dei filtri di Libero, richiedono che il provider da cui proviene la mail sia verificato con il sender-ID o il protocollo SPF.
    Questa cosa deve sistemarla il tuo hosting provider, chiedi lumi all'assistenza.
    ho un server dedicato, posso farla io sta cosa, no? ma come?
    Ad ogni modo, lato codice, posso fare un controllo che dice:

    se e' stata inviata mostra "ok"
    se non e' stata inviata mostra "errore"

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Questo te lo dice direttamente quando fai $mail->Send(), se ritorna true è stata inviata, se ritorna false no.
    Il tuo problema è che non arriva (o va nello spam), non che non viene inviata.

    Per le impostazioni del mailserver, qui trovi spiegato come si fa, vedi se è una cosa che puoi fare tu.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da Alhazred
    Questo te lo dice direttamente quando fai $mail->Send(), se ritorna true è stata inviata, se ritorna false no.
    Il tuo problema è che non arriva (o va nello spam), non che non viene inviata.

    Per le impostazioni del mailserver, qui trovi spiegato come si fa, vedi se è una cosa che puoi fare tu.
    ma quindi e' inutile che metto cosi':
    Codice PHP:
    if($mail->Send())
    echo 
    "<span class=verde>EMAIL INVIATA CORRETTAMENTE</span>";

    if(!
    $mail->Send())
    echo 
    "<span class=rosso>ERRORE NELL INVIO DELLA EMAIL</span>"
    anche perche' invia l'email 2 volte...

    come faccio a far uscire true o false? almeno associo a quello il colore dell'errore (verde o rosso)

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    if($mail->Send())
        echo 
    "<span class=verde>EMAIL INVIATA CORRETTAMENTE</span>";
    else
        echo 
    "<span class=rosso>ERRORE NELL INVIO DELLA EMAIL</span>"
    Il che è giusto, se hai true l'email è partita, se hai false non è partita, ma anche se parte non c'è modo di sapere se e come arriva (se ad esempio va nello spam).

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da Alhazred
    Codice PHP:
    if($mail->Send())
        echo 
    "<span class=verde>EMAIL INVIATA CORRETTAMENTE</span>";
    else
        echo 
    "<span class=rosso>ERRORE NELL INVIO DELLA EMAIL</span>"
    Il che è giusto, se hai true l'email è partita, se hai false non è partita, ma anche se parte non c'è modo di sapere se e come arriva (se ad esempio va nello spam).
    per true intendi che mi esce "email inviata correttamente" giusto?
    cmq ho dato un'occhiata al link che mi hai dato per le impostazioni del mailserver, ho provato a riempire i campi ma non ho confermato per paura di commettere qualche errore... tu l'hai fatto, sai come posso riempirli per andare sul sicuro?

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    il metodo mail() di PHPMailer, così come il metodo mail() standard di PHP, restituiscono true o false: true, se l'email viene correttamente passata al tuo mailserver (che invierà effettivamente l'email), false se il passaggio al mailserver fallisce, quindi il codice proposto sopra stampa "EMAIL INVIATA CORRETTAMENTE" se la mail viene passata al tuo mailserver, altrimenti appare l'altro messaggio.

    Io non ho mai provato ad impostare sender-ID ed SPF, chiedi chiarimenti all'assistenza del tuo hosting provider.

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.