Visualizzazione risultati 1 fino 6 di 6

Discussione: spedire mail con un'immagine nel testo

  1. #1
    Guest

    Predefinito

    come faccio a spedire con php una mail che oltre a testo contenga delle immagini?

  2. #2
    Guest

    Predefinito

    Usando il comando mail devi specificare l'opzione "fromatta in html" e mettere al posto del testo normale codice html.
    Per sapere come fare cerca mail in http://www.php.net

  3. #3
    Guest

    Predefinito

    ... infatti già spedivo messaggi in formato html perchè mi piace curare anche i font, i colori dei caratteri etc etc.
    Ma non riesco ad inserire un'immagine nel messaggio ... Ho provato così:


    $email_dest = $dest;
    $email_subject = $oggetto;
    $email_headers .= "From: ".$nome." <".$email.">\n";
    $email_headers .= "X-Sender: <".$email.">\n";
    $email_headers .= "Return-Path: <".$email.">\n";
    $email_headers .= "Content-Type: text/html; charset=iso-8859-1\n";
    $email_headers .= "cc:".$dest_cc."\n";
    $email_headers .= "bcc:".$dest_bcc."\n";
    $email_msg = "";
    $email_msg .= "<body bgcolor=#EAF0FF>";
    $email_msg .= "<img src=logo_posta.gif border=0><br><br>";
    $email_msg .= "<div align=justify><font face=Verdana size=2>".$testo."</font></div>";
    $email_msg .= "</body>";
    mail ($email_dest, $email_subject, $email_msg, $email_headers);


    ... il messaggio arriva ... perfetto per quanto riguarda il testo, ma l'immagine non c'è e mi visualizza il classico quadratino di immagine mancante. Perchè? Dove sbaglio?

    bye bye
    Richi

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    [code:1:c0db30a76f]$email_msg .= "<img src=logo_posta.gif border=0><br><br>"; [/code:1:c0db30a76f]

    nn te la troverà mai!!!

    ti posso indicare 2 vie:

    quella + facile è di scaricare l'immagine direttemante dal tuo sito e modificando così lo script

    [code:1:c0db30a76f]$email_msg .= "<img src=http://richialbum.altervista.org/logo_posta.gif border=0><br><br>"; [/code:1:c0db30a76f]

    l'altra è quella di inviare il messaggio codificati contenente anke l'allegato MIME... questo metodo però è davvero pieno di casini... te lo consiglio solo se conosci veramente bene il php e la gestioni della codifica dei vai tipi di allegati...

    byez
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    Guest

    Predefinito

    Pensa anche ad un'altra cosa, a cih usa sistemi diversi da windows, se formatti il testo va bene, ma se poi quel font io non ce l'ho?
    Spero vivamente che per testo formattato tu prenda in considerazione una stringa di questo genere font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;

  6. #6
    Guest

    Predefinito

    x sugandbibi ... sì sì non preoccuparti uso i gruppi di font (era solo un esempio per questo ho messo un font solo).

    x quanto riguarda il problema dell'immagine:
    A me interesserebbe proprio la seconda scelta ... Il primo metodo l'ho già adottato, ma vorrei che si vedesse l'immagine anche se uno si scarica la posta e poi se la guarda offline. Quindi mi serve il secondo metodo.

    Ho scoppiazzato un po' in giro (dato ke le mie conoscenze di php non sono così approfondite), e sono arrivato ad elaborare una cosa del genere:


    $email_dest = $dest;
    $email_subject = $oggetto;
    $email_headers .= "From: ".$nome." <".$email.">\n";
    $email_headers .= "Reply-To: ".$nome." <".$email.">\n";
    $email_headers .= "MIME-Version: 1.0\n";
    $email_headers .= "Content-Type: multipart/mixed; boundary=\"MIME_BOUNDRY\"\n";
    $email_headers .= "X-Sender: <".$email.">\n";
    $email_headers .= "X-Mailer: PHP4\n";
    $email_headers .= "X-Priority: 3\n";
    $email_headers .= "Return-Path: <".$email.">\n";
    $email_headers .= "cc:".$dest_cc."\n";
    $email_headers .= "bcc:".$dest_bcc."\n";
    $email_headers .= "This is a multi-part message in MIME format.\n";


    $email_msg = "--MIME_BOUNDRY\n";
    $email_msg .= "Content-Type: application/octet-stream; name=\"logo_posta.gif\"\n";
    $email_msg .= "Content-disposition: attachment\n";
    $email_msg .= "Content-Transfer-Encoding: base64\n";
    $email_msg .= "\n";

    $file_url = "logo_posta.gif";
    $fp = fopen($file_url,"r");
    $str = fread($fp, filesize($file_url));
    $str = chunk_split(base64_encode($str));

    $email_msg .= "$str\n";
    $email_msg .= "\n";

    $email_msg .= "--MIME_BOUNDRY\n";
    $email_msg .= "Content-Type: text/html; charset=iso-8859-1\n";
    $email_msg .= "Content-Transfer-Encoding: quoted-printable\n";
    $email_msg .= "<body bgcolor=#EAF0FF>";
    $email_msg .= "<br><br>";
    $email_msg .= "<div align=justify><font face=Verdana size=2>".$testo."</font></div>";
    $email_msg .= "</body>";
    $email_msg .= "--MIME_BOUNDRY--\n";
    mail ($email_dest, $email_subject, $email_msg, $email_headers);


    ora sono 2 i problemi che devo risolvere:

    1) mi arriva un messaggio che ha l'immagine come allegato ma non visualizza il testo.
    2) io in realtà non voglio l'immagine come allegato ... ma la vorrei all'inizio del testo ... E penso che debba modificare la riga dove c'è scritto:
    $email_msg .= "Content-disposition: attachment\n";
    ... infatti "Content-disposition: attachment\n" non fa proprio al caso mio.

    Se c'è qualcuno che può aiutarmi ... sono qui ad ascoltarlo!
    bye bye
    Richi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •