Visualizzazione risultati 1 fino 11 di 11

Discussione: Inviare e ricevere mail dal proprio client e non da Apache

  1. #1
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Question Inviare e ricevere mail dal proprio client e non da Apache

    Salve a tutti,

    sto realizzando un form mail da far compilare ai visitatori di un sito, ma facendo le dovute prove sul server mi sono accorto che l'indirizzo mail da cui ricevo i contatti è apache@ns98.altervista.org

    Volevo sapere se qualcuno conosce qualche script in php per fare in modo che la mail da cui risulti l'invio del form sia quella dell'utente, anche perché considerando che quando l'utente compila la mail ne riceve una di risposta automatica vorrei far comparire la mail del sito e non quella citata prima.

  2. #2
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    No problem, ho risolto da me.

    Codice PHP:
    $headers = "From: {$_POST['nome']} <{$_POST['email']}>\r\n";
    Con la funzione qui sopra ho risolto il problema.

    Ora però mi sono accorto di un altro problema:
    come detto sopra quando l'utente invia il form in automatico gli arriva una mail di risposta. In questa mail ho dovuto inserire caratteri speciali come "è" che però mi vengono letti come "À" e questo nonostante il charset della pagina html e di quella php sia lo stesso.

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    Prova specificando il charset anche nell'email: aggiungendo questa riga:
    Codice PHP:
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    (ovviamente, devi mettere il tuo charset).

    Riferimento mail().

    Ciao!

  4. #4
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Ciao Alemoppo,

    non avevo pensato allo specificare il charset direttamente nella mail, grazie.

    Però mi sono accorto che questa soluzione non funziona con tutte le mail.
    Ad esempio su GMail mi corregge l'errore ma su Libero no, che ci sia un problema con alcuni servizi di posta?

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    Non saprei. Prova indicando anche:
    Codice PHP:
    "Content-Transfer-Encoding: 8bit\n";
    Se ancora non va, prova convertendo in entità html (&egrave; etc...).

    Ciao!

  6. #6
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Ciao e grazie ancora per l'aiuto.
    Con quella stringa di codice adesso anche sull'altro indirizzo i caratteri speciali vengono letti bene, però stranamente non mi riconosce più \n
    Invece di arrivare ben formattata arriva in un'unica riga, tutta d'un fiato.
    Credo che per comodità cambierò la formula di risposta automatica facendo attenzione a evitare i suddetti caratteri, però son curioso di scoprire come risolvere questo problema.

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    mmh, non è che hai inserito la riga per far parsare in HTML? Prova scrivendo <br> al posto di andare a capo (una prova).

    Ciao!

  8. #8
    Guest

    Predefinito

    Riporto la mia esperienza personale, magari può essere d'aiuto.

    Ho voluto ad ogni costo la codifica UTF-8 (avevo già fatto degli script che coinvolgevano tale codifica sullo stesso sito e non mi andava di cambiarla).

    Ero giunto al limite della disperazione, invocato la codifica UTF-8 praticamente ovunque possibile, passando attraverso la conversione con htmlentities(nl2br()), convertendo poi di nuovo <br /> da caratteri a codice HTML e infine gestendo praticamente ogni carattere accentato (íìéèáàóòúù) sostituendolo con il relativo codice HTML.

    Finalmente tutto funzionava.

    ...poi ho scoperto che bastava settare l'editor testuale che uso (NotePad++) con la codifica UTF-8 per far filare tutto liscio...
    ...senza alcun tipo di conversione...

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,179

    Predefinito

    Beh certo... Tutti dev'essere con lo stesso charset: anche l'editor.
    In questo caso però si tratta di dati immessi dall'utente (in un form), quindi non centra più l'editor :)

    Ciao!

  10. #10
    Guest

    Predefinito

    Guarda, non so che dirti... Sta di fatto che con la codifica ANSI predefinita dell'editor non ne venivo proprio fuori (controllavo il codice sorgente pagina e non c'erano problemi)... Di codice php c'erano due righe... Un echo per controllare cosa sputava fuori la textarea immessa dall'utente. E ne usciva il disastro (che veniva passato pari pari nella mail). E' bastato porre la codifica giusta sull'editor e i problemi sono spariti: filtro solo con un trim e nl2br e le mail in HTML arrivano con tutti i caratteri al loro posto.

  11. #11
    Guest

    Predefinito

    Riprendo questo post per approfondire un po' la questione del charset. Sto preparando un nuovo sito. Decido per la codifica ISO-8859-1 messa in head (per una volta, dico, scrivo perché invece di perch&eacute;). E' ora di preparare il form mail, tranquillo mi scrivo tutto il codice (con Notepad++ nella normale codifica ANSI), nel momento di scrivere l'intestazione della mail scrivo il charset ISO-8859-1 e faccio qualche test (nel senso che echo il testo del form). Sembra tutto a posto, caratteri speciali, accenti...
    Vado a inserire un vero indirizzo mail (sotto gmail) e ciao. Caratteri cirillici al posto delle lettere accentate. Le ho provate tutte... scrivere il charset con o senza virgolette nell'intestazione della mail, barare convertendo il codice in UTF-8 con l'editor in realtà senza cambiare una virgola nel codice... Niente da fare. Sembra proprio che la funzione mail() voglia UTF-8 come carattere dichiarato nella pagina, UTF-8 come carattere nell'editor e UTF-8 nell'header nella funzione mail() in PHP. In questo modo funziona tutto.
    Qualcuno ha esperienze in proposito? Possibilmente postando anche le porzioni di codice che interessano il charset?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •