Domanda

Sto usando php e mysql.E il mio sito è in flash (sito full flash)

Ho un sito Web che consente agli utenti di registrarsi.Il processo di registrazione include l'invio di "e-mail di attivazione", fare clic sul collegamento per attivare l'account.

Le prime due settimane sono andate bene.Su circa 2000 utenti risultano attivati ​​1800 utenti.Successivamente gli utenti attivati ​​scendono drasticamente, fino a circa il 30%.Esempio:1000 utenti iscritti, solo 300 attivati.

Inizialmente, ho scoperto che il problema era dovuto al fatto che l'e-mail non poteva essere raggiunta dagli utenti ymail, msn e gmail.(La maggior parte dei miei abbonati sono Ymail (yahoo), hotmail/msn (live) e Gmail (gmail)).Ho provato a registrarmi utilizzando ymail e hotmail, ma non ho ricevuto alcuna email di attivazione.Ho contattato yahoo e msn, alla fine la mia email può passare ora.

Tuttavia, dalle statistiche di registrazione ancora visibili, gli utenti attivati ​​sono solo il 30% circa, il che mi confonde molto.Contatto la mia società di hosting, chiedo loro di inserire nella whitelist il mio IP.E lo hanno fatto.

Ho bisogno del vostro consiglio/aiuto sulle seguenti domande:

  • Come verificare dove risiede il problema?L'e-mail non viene recapitata?L'utente ha ricevuto un'e-mail ma non ha fatto clic sul collegamento di attivazione?

Sto usando la funzione di posta php.e queste sono le mie intestazioni:

  $headers = 'MIME-Version: 1.0' . "\r\n";

  $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

  $headers .= 'From: Admin <\admin@domain.com>' . "\r\n";

  $headers .= 'Return-Receipt-To: Bounce <\bounce@domain.com>' . "\r\n";

  $headers .= 'Reply-To: Admin <\admin@domain.com>' . "\r\n";

  $return_path = "\bounce@domain.com\";

(Nascondo il mio nome di dominio e aggiungo barre rovesciate nelle e-mail, perché in caso contrario l'e-mail non verrà visualizzata qui, strano)

C'è qualcosa che non va nelle intestazioni?

  • Cosa posso fare per migliorare il mio processo di registrazione/attivazione dell'iscrizione?
È stato utile?

Soluzione

Dovresti passare il percorso di ritorno come parametro "-f" per la funzione mail():

mail(
    $this->recipient,
    $subj,
    $this->body,
    $this->compose_headers(),
    '-f ' . Options::obj()->mail->return_path);

Inoltre, per ottenere risultati ottimali, se il server di invio ha un nome di dominio pubblico example.com, il percorso di ritorno dovrebbe essere qualcosa@example.com.

Ad ogni modo, dovresti assolutamente controllare i log (/var/log/mail*) per sapere esattamente cosa sta succedendo.

Altri suggerimenti

Prova a utilizzare Gmail come server SMTP invece di un server di posta come Sendmail da un dominio.L'utilizzo di Gmail SMTP garantirebbe in un certo senso che le tue e-mail vengano inviate con la massima sicurezza.Inoltre Gmail non verrà trattato come spam a meno che l'ID e-mail non sia contrassegnato come spam (quindi prova a utilizzarne uno sicuro).Per migliorare l'attivazione->attivazione tramite put, la soluzione migliore è garantire che l'e-mail raggiunga la casella di posta dell'utente.

Come rete di sicurezza puoi avere una funzionalità in cui consenti all'utente di inviare nuovamente il collegamento di attivazione se il primo non è riuscito per qualche motivo.

Se non ti senti a tuo agio nell'usare Gmail come SMTP, puoi registrare il tuo dominio con le app Google (ma ciò potrebbe richiedere modifiche alle esigenze aziendali) e puoi avere un tipo di email admin@dominio.com e utilizzare comunque server SMTP Gmail efficienti.

Esistono molte librerie come phpMAiler che consentono di utilizzare server SMTP esterni.Tieni presente che tutti i dati tramite i server Gmail passano tramite SSL o TSL.

Hai accesso ai file di registro del server di posta elettronica che invia le email di registrazione?Eventuali email respinte normalmente tornare al server di invio.Monitorando i file di registro puoi controllare e vedere il numero di email (se presenti) che vengono ancora respinte.

Che tipo di accesso hanno gli utenti al tuo sito web senza un indirizzo email attivato?Ci sono funzionalità disabilitate?Ci sono incentivi per attivare o utilizzare un indirizzo email reale?

Il tuo esempio non mostra un'intestazione Data che è un campo obbligatorio.Nella mia esperienza alcuni gestori di posta rifiutano le e-mail che non ne hanno una (e alcuni ne aggiungono semplicemente una con la data corrente). Se il tuo codice effettivo non ne ha uno, prova ad aggiungerne uno e vedi se fa la differenza.

Cerca RFC2822 per informazioni su ciò che è richiesto,

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top