Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    formattare invio email in html con immagine allegate

    Salve, avrei bisogno di formattere un testo inviato via email , ho trovato questo articolo su html , l'ho messo nella pagina per provarlo ma non funziona. Dove sbaglio?





    <?php
    // costruiamo alcune intestazioni generali
    $header = "From: Inviante <freestleweb@freestyleweb.it>\n";
    $header .= "X-Mailer: Il nostro Php\n";


    // generiamo la stringa che funge da separatore
    $boundary = "==String_Boundary_x" .md5(time()). "x";


    // costruiamo le intestazioni specifiche per un messaggio
    // con parti relazionate
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/related;\n";
    $header .= " boundary=\"$boundary\";\n\n";


    // questa parte del messaggio viene visualizzata
    // solo se il programma non sa interpretare
    // i MIME poiché è posta prima della stringa boundary
    $messaggio = "Se visualizzi questo testo il tuo programma non supporta i MIME\n\n";


    // costruiamo la sezione in formato html
    $messaggio .= "–$boundary\n";
    $messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
    $messaggio .= "<html><body><p>Questo messaggio è in formato <i>html</i> con immagine inline.</p><p>Visita il sito <a href=\"http://www.html.it\">www.html.it</a><img src=\"cid:MiaImmagine123\" alt=\"mia immagine\"></p></body></html>\n\n";


    // costruiamo la sezione contenente l'immagine
    // cui attribuiamo l'id MiaImmagine123
    $messaggio .= "–$boundary\n";
    $messaggio .= "Content-ID: <MiaImmagine123>\n";
    $messaggio .= "Content-Type: image/jpeg\n";
    $messaggio .= "Content-Transfer-Encoding: base64\n\n";


    // leggiamo il file corrispondente all'immagine dal nostro server
    $allegato = "img/logo2.png";
    $file = fopen($allegato,'rb');
    $data = fread($file,filesize($allegato));
    fclose($file);


    // usiamo la codifica base64 per trasmettere il file
    $data = chunk_split(base64_encode($data));
    $messaggio .= "$data\n\n";


    // chiusura del messaggio con la stringa boundary
    $messaggio .= "–$boundary–\n";


    $subject = "messaggio con immagine inline";


    if( @mail("info@freestyleweb.it", $subject, $messaggio, $header) ) echo "e-mail inviata con successo!";
    else echo "errore nell'invio dell'e-mail!";
    ?>

    Grazie in anticipo per le risposte

  2. #2
    Ragazzi ho usato quest'altro form funziona benissimo ...

    solo una cosa se volessi che arriva a pi persone come potrei fare? se fosse tipo un invio multiplo tipo newsletter? come posso modificarlo?

    // definisco mittente e destinatario della mail
    $nome_mittente = "Mio Nome";
    $mail_mittente = "free@cioweb.it";
    $mail_destinatario = "info@ciaoweb.it";


    // definisco il subject
    $mail_oggetto = "Messaggio di prova";


    // definisco il messaggio formattato in HTML
    $mail_corpo = <<<HTML
    <html>
    <head>
    <title>Una semplice mail con PHP formattata in HTML</title>
    </head>
    <body>
    <CENTER><img src="http://www.ciaoweb./mg/logo2.png"></CENTER>
    <p>Ciao <b>Adele Iorio</b><br>
    la tua iscrizione è stata attivata con successo
    </p>
    <p>Questa è una prova</p>

    </p>
    <p>Visita il sito www.ciaoweb.it per scaricare i coupon, controllare il suo saldo crediti, scoprire i negozi partner più vicini a te, accumulare i crediti e utilizzarli per i tuoii acquisti speciali.</p>
    <p>Ti salutiamo cordialmente augurandoti ottimi affari</p>
    <p align="left">
    <span style='size:19px'><b>_____________________________ _____</b></span>

    </p><br><br>
    <hr>

    <hr>
    <br><br>

    </body>
    </html>
    HTML;


    // aggiusto un po' le intestazioni della mail
    // E' in questa sezione che deve essere definito il mittente (From)
    // ed altri eventuali valori come Cc, Bcc, ReplyTo e X-Mailer
    $mail_headers = "From: " . $nome_mittente . " <" . $mail_mittente . ">\r\n";
    $mail_headers .= "Reply-To: " . $mail_mittente . "\r\n";
    $mail_headers .= "X-Mailer: PHP/" . phpversion() . "\r\n";


    // Aggiungo alle intestazioni della mail la definizione di MIME-Version,
    // Content-type e charset (necessarie per i contenuti in HTML)
    $mail_headers .= "MIME-Version: 1.0\r\n";
    $mail_headers .= "Content-type: text/html; charset=UTF-8";


    if (mail($mail_destinatario, $mail_oggetto, $mail_corpo, $mail_headers))
    echo "Messaggio inviato con successo a " . $mail_destinatario;
    else
    echo "Errore. Nessun messaggio inviato.";

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Metti la mail() dentro ad un ciclo, se il messaggio è uguale per tutti:
    Codice PHP:
    ...
    foreach(
    $mails as $mail_destinatario){
       if (
    mail($mail_destinatario$mail_oggetto$mail_corpo$mail_headers))
           echo 
    "Messaggio inviato con successo a " $mail_destinatario;
       else
           echo 
    "Errore. Nessun messaggio inviato.";


  4. #4
    Quote Originariamente inviata da boots Visualizza il messaggio
    Metti la mail() dentro ad un ciclo, se il messaggio è uguale per tutti:
    Codice PHP:
    ...
    foreach(
    $mails as $mail_destinatario){
       if (
    mail($mail_destinatario$mail_oggetto$mail_corpo$mail_headers))
           echo 
    "Messaggio inviato con successo a " $mail_destinatario;
       else
           echo 
    "Errore. Nessun messaggio inviato.";


    Vediamo se ho capito bene, allora faccio la query dove estraggo le email e metto invio in forech così arrivano a tutti giusto? ci provo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.