• User Attivo

    Inviare mail con HTML tramite PHP

    Sto provando ad inviare delle mail contenenti codice HTML tramite PHP.
    Girando per la rete sono riuscito ad arrivare a questo codice.

    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    
    $email_destinatario = "[email protected]"; //modificare con il destinatario
    $email_mittente = "[email protected]"; //modificare con il mittente
    $titolo = "Proposta Stage interinale"; //titolo
    $messaggio = "
        <html>
            <head></head>
            <body>
            <p>Questo è un messaggio di prova</p>
            </body>
        </html>"; //messaggio HTML dell'email
    
    $headers = "MIME-Version: 1.0\r\n" ;
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: [Luca Faedda] <".$email_mittente.">\r\n"; //cambiare [nome mittente] con quello che desiderate!
    
    //invio l'email!
    
    if(mail($email_destinatario, $titolo, $messaggio, $headers))
        echo "Email inviata correttamente!";
    else
        echo "Errore nell'invio dell'email!";
    
    ?>
    
    

    Caricando il file mail.php contenente il codice sopra e caricando la pagina riesco ad auto-inviarmi correttamente la mail.
    Non riesco però ad inviare la mail quando la parte di codice html contiene una immagine caricata.

    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    
    $email_destinatario = "[email protected]"; //modificare con il destinatario
    $email_mittente = "[email protected]"; //modificare con il mittente
    $titolo = "Proposta Stage interinale"; //titolo
    $messaggio = "
        <html>
            <head></head>
            <body>
            <<img src="img/immagine1.png" />
            </body>
        </html>"; //messaggio HTML dell'email
    
    $headers = "MIME-Version: 1.0\r\n" ;
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: [Luca Faedda] <".$email_mittente.">\r\n"; //cambiare [nome mittente] con quello che desiderate!
    
    //invio l'email!
    
    if(mail($email_destinatario, $titolo, $messaggio, $headers))
        echo "Email inviata correttamente!";
    else
        echo "Errore nell'invio dell'email!";
    
    ?>
    
    

  • ModSenior

    Ciao lucaeffe,

    che significa non riesci ad inviare? L'email non arriva?


  • User Attivo

    Ho provato in questa maniera ma non riesco a visualizzare l'immagine ma solo la parte dopo del codice

    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    
    $email_destinatario = "[email protected]"; //modificare con il destinatario
    $email_mittente = "[email protected]"; //modificare con il mittente
    $titolo = "Proposta Stage interinale"; //titolo
    $messaggio = "
        <html>
            <head></head>
            <body>
            <img src=\"img/presentazionemail.png\" >
            </body>
        </html>"; //messaggio HTML dell'email
    
    $headers = "MIME-Version: 1.0\r\n" ;
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: [Luca Faedda] <".$email_mittente.">\r\n"; //cambiare [nome mittente] con quello che desiderate!
    
    //invio l'email!
    
    if(mail($email_destinatario, $titolo, $messaggio, $headers))
        echo "Email inviata correttamente!";
    else
        echo "Errore nell'invio dell'email!";
    
    ?>
    
    ```![image](http://img704.imageshack.us/img704/8229/senzatitolo1oj.png)

  • User Attivo

    Guarda che l'immagine così non la invierai mai... perchè con questo codice ```

    <img src="img/immagine1.png" />

    non fai altro che richiamare un immagine presente nella cartella "img" per poi visualizzarla a monitor...
    Dovresti prima caricarla sul server e poi inviarla!

  • User Attivo

    Guarda che l'immagine così non la invierai mai... perchè con questo codice ```

    <img src="img/immagine1.png" />

    non fai altro che richiamare un immagine presente nella cartella "img" per poi visualizzarla a monitor...
    Dovresti prima caricarla sul server e poi inviarla!

  • User Attivo

    Tra quali tag dovrei inserire il percorso dell'immagine?


  • User Attivo

    Non è una questione di tag, ma di percorso dell'immagine.
    Quello che intendeva dire infosicurezza è che nel tag img vai a cercare un'immagine che dovrebbe risiedere nella cartella img, all'interno della stessa cartella dove si trova la tua pagina html.

    Ora, questo non sarebbe un problema se si trattasse di una pagina html vera e propria, perché un url relativo come quello che hai utilizzato farebbe riferimento al server sul quale è ospitato il sito.
    Non trattandosi però di una pagina html, ma di una email, quando arriverà nel pc del destinatario, chiaramente non ci sarà una cartella img contenente immagine1.png.

    Per risolvere dovresti caricare immagine1.png su un qualsiasi spazio web e poi, all'interno del tag img, mettere l'url assoluta (quella con http:// ecc) dell'immagine.

    Per farti un esempio: ti carichi l'immagine su lucaeffe.it/img e poi nel campo src scrivi "http: //www. lucaeffe.it/img/immagine1.png" (senza spazi 😉 ).

    Ciao,
    Luca Bartoli


  • User Attivo

    Grazie infatti è abbastanza logico come discorso solo che capirai sono abbastanza inesperto.
    Provavo infatti il tuo consiglio e inoltre ho modificato alcune regole di sintassi per adattarle al codice .php

    
    <!DOCTYPE  html PUBLIC "-//W3C//DTD  XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    
    $email_destinatario = "[email protected]"; //modificare con il destinatario
    $email_mittente = "[email protected]"; //modificare con il mittente
    $titolo = "Proposta Stage interinale"; //titolo
    $messaggio = "
        <html>
            <head></head>
            <body>
             <p>Ciao Bello!!!</p>
            <img src=\"http://www.lucaeffe.com/mail.html\" >
    
            </body>
        </html>"; //messaggio HTML dell'email
    
    $headers = "MIME-Version: 1.0\r\n" ;
    $headers .= "Content-Type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: [Luca Faedda] <".$email_mittente.">\r\n"; //cambiare [nome mittente] con quello che desiderate!
    
    //invio l'email!
    
    if(mail($email_destinatario, $titolo, $messaggio, $headers))
         echo "Email inviata correttamente!";
    else
        echo "Errore nell'invio dell'email!";
    
    ?>
    
    

    La mail arriva correttamente! ma arriva solo la parte testuale
    Come mai?

    image


  • User Attivo

    Ho risolto ma non riesco ad inserire un link attivo nel PHP.
    Ho provato in questo modo ma c'è l'avviso dell'errore di sintassi:

    
    
    <p>Porfolio : </p><a href="<?="pagina.html"?>"></a> 
    
    
    

  • ModSenior

    Magari non supporta gli short tags?
    <?php echo "pagina.html" ?>