Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: email con allegato

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518

    email con allegato

    Buonasera,
    sto usando questo codice per mandare una mail a + destinatari includendo in allegato una foto e funziona correttamente :
    <?

    $mess="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
    <HTML><HEAD>
    <META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\">
    <STYLE>
    H5 {text-align: justify; text-decoration: none; color: #333333; font-size: 12px; font-family: Arial}
    A:link, A:visited, A:hover { color: #FFcc00 }

    </STYLE>
    </HEAD>
    <BODY bgColor=#ffffff link=#333333 alink=#333333 vlink=#333333>
    <DIV><h5>BLA BLA BLA BLA. Questo è il corpo dell'email; si possono usare tutti i tag html, come se si trattasse di una pagina internet.

    <img src=\"avanti.jpg\"></h5>
    </BODY></HTML>" ;

    /*Nella variabile $mess va inserito tutto il codice html che comporrà il corpo dell'email che si vuole inviare. Come nell'esempio si possono utilizzare anche i fogli di stile.*/

    include("../inclusioni/conf.php");

    $database = mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($db,$database);




    $getemail = mysql_query("SELECT email FROM newsletter") or die(mysql_error());
    while($data=mysql_fetch_array($getemail)) {
    $email=$data["email"];


    $e="$email"; /*Inserire l'indirizzo email a cui si vuole spedire l'email*/
    $ogg="Oggetto dell'email"; /*Inserire l'oggetto dell'email da spedire*/
    $mittente="miaemail@email.com"; /*Inserire l'indirizzo email che verrà visulaizzato come mittente dell'email*/
    $reply="miaemail@email.com"; /*Inserire l'indirizzo email a cui verranno inviate le risposte all'email inviata*/

    $titolo="avanti.jpg"; /*Inserire il nome che si vuole dare all'allegato*/
    $f="avanti.jpg"; /*Inserire l'indirizzo del file che si vuole inviare come allegato*/
    $filetype="application/jpeg"; /*Inserire il formato MIME del file da allegare*/
    }


    /*Non modificare nulla al di sotto di questa linea*/

    $intestazioni = "From: $mittente\nReply-To: $reply\nX-Mailer: Sismail Web Email Interface\nMIME-version: 1.0\nContent-type: multipart/mixed;\n boundary=\"Message-Boundary\"\nContent-transfer-encoding: 7BIT\nX-attachments: $titolo";

    $body_top = "--Message-Boundary\n";
    $body_top .= "Content-type: text/html; charset=iso-8859-1\n";
    $body_top .= "Content-transfer-encoding: 7BIT\n";
    $body_top .= "Content-description: Mail message body\n\n";

    $msg_body = $body_top . $mess;

    $filez = fopen($f, "r");
    $contents = fread($filez, filesize($f));
    $encoded_attach = chunk_split(base64_encode($contents));
    fclose($filez);

    $msg_body .= "\n\n--Message-Boundary\n";
    $msg_body .= "Content-type: $filetype; name=\"$titolo\"\n";
    $msg_body .= "Content-Transfer-Encoding: BASE64\n";
    $msg_body .= "Content-disposition: attachment; filename=\"$titolo\"\n\n";
    $msg_body .= "$encoded_attach\n";
    $msg_body .= "--Message-Boundary--\n";

    if(!(@mail($e,$ogg,$msg_body, $intestazioni))){
    print "<H5>Invio della email fallito.</H5>";}

    ?>

    Come dovrei fare per inviare la mail con foto però non in allegato ma direttamente nel corpo della mail?
    Grazie.

  2. #2
    Perchè non usi semplicemente una classe come phpmailer che fornisce quella e molte altre funzioni già testate e pronte all'uso?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Grazie provo a studiarla.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    E troppo complessa e comunque questa che uso funziona correttamente, è possibile modificare la mia?

  5. #5
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    368
    Ai provato a mettere un <img src> o qualcosa di simile come se si trattasse di una pagina web normale? Oppure collegare l' img src ad un' URL online anziche incorporarla coma allegato (cosa che fà in automatico il prog).

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Se inserisco questo:
    <img src=\"avanti.jpg\">
    nel corpo della mail mi scrive avanti.jpg con la possibilità di linkarlo, però non mi fa vedere nulla.

  7. #7
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    368
    Perchè la \ dopo il nome? Prova a toglierla e prova anche ad inserire l' URL completadell' immagine.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    518
    Codice PHP:
     $mess="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> 
    <HTML><HEAD> 
    <META http-equiv=Content-Type content=\"text/html; charset=iso-8859-1\"> 
    <STYLE> 
    H5 {text-align: justify; text-decoration: none; color: #333333; font-size: 12px; font-family: Arial} 
    A:link, A:visited, A:hover { color: #FFcc00 } 

    </STYLE> 
    </HEAD> 
    <BODY bgColor=#ffffff link=#333333 alink=#333333 vlink=#333333> 
    <DIV><h5>BLA BLA BLA BLA. Questo è il corpo dell'email; si possono usare tutti i tag html, come se si trattasse di una pagina internet.

    [img]avanti.jpg[/img]</h5> 
    </BODY></HTML>" 

    neanche così funziona, scusami cosa intendi per url completa dell'immagine, io testo tutto on-line e l'iimagine che invio si trova nella stessa cartella fel form che invia la mail.

  9. #9
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    368
    Per URL intendo:
    http://www.prova.com/images/immagine.jpg
    se disponi di un piccolo spazio.

  10. #10
    Questa soluzione è totalmente inefficace perchè la maggior parte dei client NON ha il download delle immagini abilitato di default.

    Per inviare le immagini all'interno dell'email (le cosidette immagini embedded) è necessario utilizzare del codice specifico, ma IMHO è del tutto illogico riscriverlo a mano se esistono delle classi già pronte.

    Per quanto riguarda l'affermazione "E troppo complessa", dipende dai punti di vista. Il tuo codice contiene 36 righe che con phpmailer si possono riscrivere in una decina, molto più pulite, ordinate e "scalabili".

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.