Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    9

    a capo in mail() headers multipart/alternative?

    Come faccio ad inserire un "a capo" nella parte text/plain che inserisco negli headers della chiamata a mail()?

    Mi spiego meglio...

    Premetto che non sono un super-esperto, ma il metodo che ho trovato per inviare una email multipart/alternative con parte puro testo e parte html è di inserire tutto quanto negli headers passati alla funzione mail(), lasciando invece vuoto il parametro apposito previsto per il testo del messaggio nella chiamata.
    In pratica faccio così:
    mail($to, $subject, '', $headers); // notare '' come testo vuoto della mail

    Il mio problema però è che nella parte "plain text" del messaggio, che poi altro non è che una stringa che concateno in $headers al posto opportuno, non posso specificare nessun "a capo" perché se inserisco uno \n questo giustamente mi corrompe la lettura degli headers e la mail non parte più.

    Se invece il testo del messaggio è inserito tramite una variabile riempita da una FORM chiamante, allora nel testo che inserisco nella form posso sbizzarrirmi ed andare tranquillamente a capo: gli "a capo" vengono conservati e la mail arriva correttamente.
    Ma come faccio ad inserire gli a capo quando la inizializzo io con una stringa nel codice?
    I love my Mac

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Codice PHP:
    /* Per inviare email in formato HTML, si deve impostare l'intestazione Content-type. */
    $intestazioni  "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";

    /* intestazioni addizionali */
    $intestazioni .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
    $intestazioni .= "From: Promemoria Compleanni <compleanni@example.com>\r\n";
    $intestazioni .= "Cc: [email]archiviocompleanni@example.com[/email]\r\n";
    $intestazioni .= "Bcc: [email]controllocompleanni@example.com[/email]\r\n";

    /* ed infine l'invio */
    mail($destinatari$oggetto$messaggio$intestazioni); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    9
    e ma...con questo codice io invio una mail HTML e basta, no?
    Io invece la voglio in due parti separate e comunicare al client che le riceve che sono alternative: una text/plain ed una text/html (una mail "multipart/alternative", appunto...).
    Io ottengo tutto questo con i dovuti headers e la definizione e l'utilizzo di una stringa boundary a divisione fra le parti che contengono le due versioni della mal: e tutto questo va inserito nella parte header della chiamata a mail() e a quanto pare FUNZIONA.
    Mi resta il solo problema di inserire gli a capo nella parte text/plain senza corrompere l'header (nella parte HTML ovviamente il problema non si pone perché non mi interessano dato che sarebbero inutili ed ignorati...).
    I love my Mac

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    La migliore soluzione per invio della mail è la funzione phpmailer ,
    facile da configurare e non dà problemi con i vari header.

    ciao

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.