Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Inviare Email con Attach

    Salve,
    vorrei spedire email con la funzione mail() con attach,
    è possibile?

    Guardando il manuale di riferimento non riporta la possibilità se non attraverso altre classi...

    Avete qualche idea o sapete come fare?

    Saluti

  2. #2
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247
    Non sò se ti possa essere utile ma io uso questo script per inviare mail con allegato:
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    <meta name="description" content="">
    <meta name="keywords" content="">
    <meta name="author" content="haxmen">
    <meta name="generator" content="AceHTML 5 Pro">
    </head>
    <body>
    <?php
    /*
    script che consente di inviare email
    */
    $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>mail di prova </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.*/

    $e="ricevente@dominio.it"; /*Inserire l'indirizzo email a cui si vuole spedire l'email*/
    $ogg="Mail di prova"; /*Inserire l'oggetto dell'email da spedire*/
    $mittente="mittente@dominio.it"; /*Inserire l'indirizzo email che verrà visulaizzato come mittente dell'email*/
    $reply="altro_mittente@dominio.it"; /*Inserire l'indirizzo email a cui verranno inviate le risposte all'email inviata*/

    $titolo="mail.txt"; /*Inserire il nome che si vuole dare all'allegato*/
    //$f=$_SERVER["DOCUMENT_ROOT"]."/mail/prova.txt"; /*Inserire l'indirizzo del file che si vuole inviare come allegato*/
    $f='prova.txt';
    $filetype="application/text";
    /*
    Inserire il formato MIME del file da allegare
    text/html
    pdf
    */
    /*Non modificare nulla al di sotto di questa linea*/
    //per inviarlo anche in copia carbone
    //$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";
    $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;
    ini_set('SMTP','indirizzo server di posta');

    $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";

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

    ?>
    </body>
    </html>

    Ciao
    Andrea

  3. #3
    Grazie mille,
    lo provero' quanto prima..

    Se non ci fosse il forum....

  4. #4
    se può essere utile nel thread in rilievo c'è il link ad una pillola in merito:
    http://forum.html.it/forum/showthrea...hreadid=513009

    ma guardando il codice postato penso che sia preso da lì.

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    e se volessi che l'attach me lo spedisca l'utonto?

  6. #6
    nel form di contatti metti questo campo file per la selezione dell'allegato:
    codice:
    <input name="fileUpload" type="file" id="fileUpload" />
    poi nella pagina in cui ricevi ed elabori il form ci metti:

    codice:
    global $strDesc;
    global $fileUpload;
    global $fileUpload_name;
    global $fileUpload_size;
    global $fileUpload_type;
    	 
    $fileUpload = stripslashes($fileUpload);
    if ($fileUpload <> ''){
      $fileHandle = fopen($fileUpload, "r");
      $fileContent = fread($fileHandle, $fileUpload_size);
      $fileContent = addslashes($fileContent);
    }
    /*
    altro tuo codice
    */
    
    //componi la mail con l'allegato
    $mess = "testo che vuoi";
    
    $e = "destinatario@email.it"; 
    $ogg = "Oggetto della mail";
    $mittente = "mittente@email.it"; 
    $reply = "replay-to@email.it";
    
    //non modificare nulla al di sotto di questa riga
    
    if ($fileUpload <> ''){
      $titolo = $fileUpload_name; /*Inserire il nome che si vuole dare all'allegato*/
      $f = $fileUpload; /*Inserire l'indirizzo del file che si vuole inviare come allegato*/
      $filetype = $fileUpload_type; /*Inserire il formato MIME del file da allegare*/
    }
    
    
    $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; 
    
    if ($fileUpload <> ''){
    	$filez = fopen($f, "r"); 
    	$contents = fread($filez, filesize($f)); 
    	$encoded_attach = chunk_split(base64_encode($contents)); 
    	fclose($filez); 
    }
    
    if ($fileUpload <> ''){
    	$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"; 
    }
    
    mail($e,$ogg,$msg_body, $intestazioni);

    dovrebbe funzionare perché l'ho preso da un mio form e funziona...

    Importante: ricordati di mettere l'enctype al tag form

    codice:
    <form name="form" method="post" action="tua_pagina.php" enctype="multipart/form-data">
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it L'avatar di quincy
    Registrato dal
    Aug 2003
    Messaggi
    247

    Esatto lo script è tratto da quella pillola!

    Ciao
    Andrea

  8. #8
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Ciao a tutti, una domanda veloce

    Dove vado a modificare se volessi inserire 2 allegati?
    Guybrush Threepwood

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.