• User Attivo

    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.


  • User Attivo

    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.


  • User Attivo

    Ho provato il tuo codice ma l'e-mail non parte 😞


  • User Attivo

    Che errore ti dà?


  • User Attivo

    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ì:

    [php]
    $messaggio .= "Content-Type: " . mime_content_type("w ww.nomesito.it/immagine.jpg") . "\n";
    [/php]


  • User Attivo

    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.

    [php]
    $messaggio .= "Content-Type: image/jpeg\n";
    [/php]


  • User Attivo

    Ok, così funziona.

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


  • User Attivo

    Ok va bene! 😄 😉

    :ciauz:


  • User

    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?

     <?php 
        
        //DESTINATARIO MAIL: Invio i dati del form alla mia mail
        $to= "[email protected]";
        //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: <[email protected]>";
        $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!";
        ?>
    

  • User

    Risolto!!!!
    Avevo copiato tre righe di codice da una paginaa internet e mi si visualizzavano correttamente i"-", ma non erano interpretati correttamente.