2010-05-07 12 views
5

È possibile verificare se il php può ricevere una sorta di ping/flag dal server di scambio di posta per dire "sì, l'e-mail è stata inviata al destinatario previsto"?Verifica esito positivo della funzione mail() PHP

Secondo il manuale PHP, il ritorno di mail() booleano potrebbe significare; "È importante notare che solo perché la posta è stata accettata per la consegna, NON significa che la posta raggiungerà effettivamente la destinazione prevista."

Ciò significa che PHP può restituire il successo ma in realtà potrebbe esserci un problema sul server di posta che php non potrebbe sapere a riguardo? e in questo caso non è stata inviata nessuna email e l'utente non ne ha la più saggia?

TIA Jared

+0

Esattamente, la posta può dare true e l'invio della posta può fallire silenziosamente. –

+0

AFAIK, il modo più accurato consiste nel fare in modo che l'utente esegua una sorta di azione all'interno dell'email inviata. Se l'azione è completata, presumibilmente hanno ricevuto l'e-mail. – munch

risposta

4

La funzione mail() sarà solo la connessione tramite SMTP al server e inviare il messaggio. Quindi se il server dice che il server ha ricevuto il messaggio, la posta tornerà con successo.

Nel frattempo, le cose possono andare storte. L'account dell'utente potrebbe essere eliminato, il disco rigido sul server di posta potrebbe bloccarsi, il server SMTP potrebbe non riuscire a trovare il server di posta dell'utente. Il server di posta dell'utente può rifiutare il messaggio perché la cassetta postale dell'utente è piena. Molte, molte cose potrebbero andare storte.

Questa non è colpa di PHP. E nessun miglioramento ragionevole potrebbe essere apportato a qualsiasi API del linguaggio di programmazione per assicurarsi che qualcuno abbia ricevuto il messaggio. Ma alcune aziende come CampaignMonitor offrono un servizio a pagamento che controllerà i rimbalzi e se le persone aprono il messaggio per aggiornare le mailing delle mailing list. Utilizzando le API da servizi come questi, è possibile verificare in pochi giorni se il messaggio è stato ricevuto correttamente.

Quindi i documenti PHP stanno dicendo: "Possiamo solo dirti se il primo server SMTP ha detto di averlo ricevuto. Potrebbero verificarsi diversi problemi tra i computer da lì alla persona con l'account di posta elettronica. "

+1

ok, questa è la risposta che volevo sapere, grazie ragazzi :) p.s dio Adoro questo sito !! <3 – Jared

Problemi correlati