Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di CRM
    Registrato dal
    Apr 2002
    Messaggi
    118

    invio allegati newsletter

    ciao
    il seguente script invia una mail con o senza allegato (notate quel if($f) che controlla se inserisco o no l'allegato).

    $e="xxxxxxxx@libero.it"; /*Inserire l'indirizzo email a cui si vuole spedire l'email*/
    $bcc=trim($elenco_destinatari); //"mia@email.it, pippone@liberone.it,";
    $ogg=$oggetto; /*Inserire l'oggetto dell'email da spedire*/
    $mittente="info@dddddddddd.it"; /*Inserire l'indirizzo email che verrà visulaizzato come mittente dell'email*/
    $reply="info@ddddddddddddd.it"; /*Inserire l'indirizzo email a cui verranno inviate le risposte all'email inviata*/

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


    $intestazioni = "From: $mittente\nBCC: $bcc;\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 . stripslashes($descrizione);
    if($f) //-------- se c'è l'allegato -------
    {
    $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)))
    {
    $message="INVIO DELLA NEWSLETTER FALLITO.";
    }


    Ora il mio PROBLEMA è che se non metto l'allegato la mail arriva tranquillamente ma ad esempio su libero.it o excite.it o cmq credo su qualunque programma di posta viene sempre visualizzata la graffetta dell'allegato (avete presente?), anche se poi aprendo la mail non c'è nessun allegato.
    Come si può ovviare a questa piccola defaillance 'graffettara'?
    grazie

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    suppongo a prima scorsa che il problema sia il fatto che comunque tu nelle intestazioni gli passi un allegato, anke se effettivamente non glielo passi poi fisicamente...
    Dovresti modificare anke le intestazioni nell'if e aggiungere l'allegato solo nel caso in cui sia veramente necessario...

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  3. #3
    Utente di HTML.it L'avatar di CRM
    Registrato dal
    Apr 2002
    Messaggi
    118
    grazie della risp
    ma cosa intendi di preciso?

  4. #4

    Una classe per semplificarti la vita

    Ciao, scusa se non mi soffermo a leggere in dettaglio il codice che hai postato. Volevo solo segnalarti l'esistenza di una classe che puo sicuramente semplificarti la vita nella creazione di applicazioni di posta basate su php: phpmailer.

    La classe automatizza tutte le funzioni relative agli allegati, all'uso dell'html nel corpo del messaggio e all'invio di immagini.... in altre parole se quello che vuoi realizzare è un sistema che vada al di là del semplice invio di testo piano, faresti bene a dargli un'occhiata...

    Saluti,
    _And

  5. #5
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    Codice PHP:
    $intestazioni "From: $mittente\n
    BCC: 
    $bcc;\nReply-To: $reply\n
    X-Mailer: Sismail Web Email Interface\nMIME-version: 1.0\n
    Content-type: multipart/mixed;\n
    boundary=\"Message-Boundary\"\n
    Content-transfer-encoding: 7BIT\n
    X-attachments: 
    $titolo"
    questo lo fai sempre ed in ogni caso.... come vedi compare sempre e cmq

    X-attachments: $titolo

    anche se poi non alleghi il file fisicamente nel blocco if...


    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  6. #6
    Utente di HTML.it L'avatar di CRM
    Registrato dal
    Apr 2002
    Messaggi
    118
    ah è vero ! grazie milla, ora provo

    _Andrea: grazie anche at te, darò un occhiata

  7. #7
    Utente di HTML.it L'avatar di CRM
    Registrato dal
    Apr 2002
    Messaggi
    118
    ho capito che il problema è nel Content-type: multipart/mixed

    Se tolgo 'mixed' allora mi arriva senza la graffetta dell'allegato ma nel testo diventano visibili anche queste cose:
    "--Message-Boundary\n";
    "Content-type: text/html; charset=iso-8859-1\n";
    "Content-transfer-encoding: 7BIT\n";
    "Content-description: Mail message body\n\n";

    COme posso fare?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.