+ Rispondi alla Discussione
Risultati da 1 a 16 di 16

Immagini in e-mail

Ultimo Messaggio di Campa1.0 il:
  1. #1
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414

    Immagini in e-mail

    Salve a tutti,
    devo inserire un'immagine all'interno del testo di un'e-mail.

    Ho creato questo codice:

    Codice PHP:
    $banner "<img src='linksito/nomeimg.jpg' border='0' />";
    mail($to,$oggetto,$banner,$headers); 
    Ora l'immagine arriva correttamente ma su outloock mi chiede sempre il consenso prima di cisualizzare le immagini. Esiste un modo per evitare questo problema?

  2. #2
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Il blocco delle immagini è un sistema di sicurezza introdotto per evitare il download di spam o codice nocivo, sopratutto se l'immagine fa riferimento ad un link esterno.
    Per rimuovere il blocco, nelle opzioni di protezione di outlook, cercare e deselezionare la voce "Blocca immagini e altri contenuti esterni alla posta elettronica HTML".
    Now is the time for all good men to come to the aid of their country!

  3. #3
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    Si ok, questo lo posso fare io sulla mia versione di outlook.

    Il problema è che questa e-mail parte ogni volta che viene compilato un form ed arriva a diversi utenti. Non posso andare a cambiare le impostazioni di outlook a tutti gli utenti
    Mi serve una soluzione a monte. Non so se devo modificare il codice php o quello html,o qualcos'altro...

  4. #4
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Potresti inviare il file dell'immagine come allegato alla mail, in questo modo non è più necessario eseguire richieste esterne per visualizzare il contenuto.
    Now is the time for all good men to come to the aid of their country!

  5. #5
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    potrebbe essere una soluzione per determinate immagini che voglio inserire a fondo della pagina.
    Ma se le immagini devono occupare uno spazio ben definito? Io me lo giostro con il codice html e php, inserendole negli spazi che voglio io.

  6. #6
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Quando si utilizzano immagini come allegati alla mail, bisogna usare codice html standard, come quando si fa riferimento ad immagini esterne, l'unica differenza sta nel SRC che è diverso.
    Ecco un esempio di come inviare email con immagine allegata.
    Codice PHP:
    // Intestazioni generali
    $header "From: Mittente <mittente@xxx.xx>\n";
    $header .= "To: Destinatario <destinatario@xxx.xx>\n";
    $header .= "X-Mailer: PHP" phpversion() "\n"//Opzionale

    // Stringa boundary per la separazione dei contenuti
    $boundary "==String_Boundary_x" .md5(time()). "x";

    // Intestazioni per messaggi related (Standard MIME)
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/related;\n";
    $header .= " boundary=\"$boundary\";\n\n";

    // Messaggio per programmi che non sopportano i MIME
    $messaggio "Il programma non supporta i MIME\n\n";

    srand((double)microtime() * 1000000); 
    $chars = array('a','b','c','d','e','f''g','h','i','l','m','n','o','p','q','r','s','t','u','v','z','x','w','y','j','j'); 

    for(
    $rand 1$rand <= 15$rand++) 

        
    $random rand(0count($chars) - 1); 
        
    $randstr .= $chars[$random]; 
    }

    // Messaggio 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>Messaggio HTML con immagine</p>
                   <p><img src=\"cid:
    $randstr\" alt=\"immagine\"></p>
                   </body>
                   </html>\n\n"
    ;

    // Sezione contenente l'immagine con attributo ID = $randstr
    // L'immagine si trova già sul server
    $messaggio .= "--$boundary\n";
    $messaggio .= "Content-ID: <$randstr>\n";
    $messaggio .= "Content-Type: " mime_content_type("immagine.jpg") . "\n";
    $messaggio .= "Content-Transfer-Encoding: base64\n\n";

    // Leggiamo l'immagine
    $allegato "immagine.jpg";
    $file fopen($allegato,'rb');
    $data fread($filefilesize($allegato));
    fclose($file);

    // Trasmetto l'immagine usando la codifica base64
    $data chunk_split(base64_encode($data));
    $messaggio .= "$data\n\n";

    // Chiusura del messaggio con la stringa boundary
    $messaggio .= "--$boundary--\n";

    $subject "Soggetto";

    if(@
    mail("destinatario@xxx.xx"$subject$messaggio$header))
        echo 
    "Inviata!";
    else
        echo 
    "Non Inviata!"
    Now is the time for all good men to come to the aid of their country!

  7. #7
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    Ma l'immagine non deve essere inviata come allegato, bensì inserita nel testo dell'email.
    Ripeto: il codice che avevo scritto inizialmente andava bene, perchè l'immagine viene visualizzata, solo che se la apro con outlook, l'utente deve ogni volta dare il consenso per visualizzarla.

  8. #8
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Nell'esempio che ti ho fatto, l'immagine viene mostrata all'interno del messaggio.
    L'unica differenza col tuo codice è che il tag IMG, non fà più riferimento aud un link esterno (ritenuto pericoloso e bloccato da outlook), ma ad un link interno alla mail, l'allegato.
    Now is the time for all good men to come to the aid of their country!

  9. #9
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    Ho provato il tuo codice ma l'e-mail non parte

  10. #10
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Che errore ti dà?
    Now is the time for all good men to come to the aid of their country!

  11. #11
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    No, la manda l'e-mail.
    Però invia un'immagine vuote. Forse sbaglio qualcosa.
    Quando vado ad inserire il nome dell'immagine, devo specificare il percorso? Tipo così:

    Codice PHP:
    $messaggio .= "Content-Type: " mime_content_type("w ww.nomesito.it/immagine.jpg") . "\n"

  12. #12
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    E' meglio se usi l'url locale per le immagine che inserisci.
    Seconda cosa, la funzione mime_content_type() non è sempre supportata, in alternativa puoi sostituirla con "image/jpeg", "image/png", "image/gif" o "image/bmp" in base all'immagine.

    Codice PHP:
    $messaggio .= "Content-Type: image/jpeg\n"

    Ultima modifica di Sups; 08-10-08 alle 20:02
    Now is the time for all good men to come to the aid of their country!

  13. #13
    User
    Data Registrazione
    Jun 2008
    Località
    Palermo
    Messaggi
    414
    Ok, così funziona.

    Mille grazie per la pazienza, se un giorno passi dalle mie parti ti offro un caffè

  14. #14
    Esperto L'avatar di Sups
    Data Registrazione
    May 2007
    Località
    Pesaro
    Messaggi
    572
    Ok va bene!

    Now is the time for all good men to come to the aid of their country!

  15. #15
    User L'avatar di Campa1.0
    Data Registrazione
    May 2013
    Località
    Medicina
    Messaggi
    12
    Scusate se riapro una discussione già chiusa da tempo, ma credo sia il posto più attinete.
    Sto impazzendo da giorni su questo codice, riesco ad inviare la mail, ma non si vede l'immagine.
    Cosa sbaglio?

    Codice:
     <?php 
        
        //DESTINATARIO MAIL: Invio i dati del form alla mia mail
        $to= "andrea.camprini@gmail.com";
        //Intestazione generica
        // L’INDIRIZZO DEL MITTENTE DELLA MAIL recuperato dal campo mail_address
        // Nome e Cognome del mittente DELLA MAIL recuperato da $_POST
        $from = trim(stripslashes($_POST["nome"]))." ".trim(stripslashes($_POST["cognome"]));
        //Oggetto della mail
        $subject = "Richiesta informazioni da ".$from." tramite Campasite"; 
        
        //Creazione dell'header
        $header = "From: ".$from." <".$_POST[mail_address].">\n";
        $header .="CC: <campasite@altervista.org>";
        $header .= "Reply-to: <".$to.">\n";
        //Se voglio sapere con che progrmma genero la mail inserisco questo campo
        //$header .= "X-Mailer: Il nostro Php\n";  
        
        // generiamo le stringhe che fungono da separatori
        $boundary = "==String_Boundary_x" .md5(time()). "x";
        $boundary2 = "==String_Boundary2_y" .md5(time()). "y";
        
        // costruiamo le intestazioni che specificano
        // un messaggio costituito da più parti alternative
        $header .= "MIME-Version: 1.0\n"; 
        $header .= "Content-Type: multipart/related;\n";
        $header .= " type=\"multipart/alternative\";\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 = $_POST[note]."\n\nSe visualizzi questo testo il tuo programma non supporta i MIME.\n\n";
        
        // il primo segmento del multipart/related
        // è definito come multipart/alternative
        $messaggio .= "--$boundary\n";
        $messaggio .= "Content-Type: multipart/alternative;\n";
        $messaggio .= " boundary=\"$boundary2\";\n\n";
    
    
        // sezione alternativa in puro testo
        $messaggio .= "--$boundary2\n";
        $messaggio .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
        $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
        $messaggio .= $_POST[note]."\n\nMessaggio in formato testo.\n\n";
        
        // sezione alternativa del messaggio in formato html
        $messaggio .= "--$boundary2\n";
        $messaggio .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
        $messaggio .= "Content-Transfer-Encoding: 7bit\n\n";
        $messaggio .= "
        <html>
        <head>
            <title>La mia email HTML</title>
            <style type=\"text/css\"> body {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; font-weight:normal; color:#000000;}
            </style>
        </head>
        <body>
            <p>Ecco la mia prima mail in HTML.<br>Questo testo è in <strong>bold</strong></p>
            <p>E qui ci metto questa immagine: <img src=\"cid:$FiatImg\"> alt=\"Monogramma AC\"</p>
        </body>
        </html>\n"; 
        
        // chiusura della sezione multipart/alternative
        $messaggio .= "--$boundary2--\n";
    
    
        // seconda sezione del multipart/related contenente l’immagine
        // cui attribuiamo l’id MiaImmagine123
        $messaggio .= "--$boundary\n";
        $messaggio .= "Content-ID: <$FiatImg>\n";
        $messaggio .= "Content-Type: image/jpg\n";
        $messaggio .= "Content-Transfer-Encoding: base64\n\n";
        
        // leggiamo il file corrispondente all’immagine dal nostro server
        $allegato = "./Fiat_Logo.jpg";
        $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";
        
        if( @mail($to, $subject, $messaggio, $header) ) echo "E-mail inviata con successo!";
        else echo "Errore nell’invio dell’e-mail!";
        ?>

  16. #16
    User L'avatar di Campa1.0
    Data Registrazione
    May 2013
    Località
    Medicina
    Messaggi
    12
    Risolto!!!!
    Avevo copiato tre righe di codice da una paginaa internet e mi si visualizzavano correttamente i"-", ma non erano interpretati correttamente.

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.