Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    48

    Non funziona l'invio mail con allegato

    Ciao a tutti
    Ho questo codice che teoricamente dovrebbe mandare l'email con un allegato. Il problema che quando alla fine vado a fare il controllo sull'invio questo va a buon fine, cioè esce la scritta "grazie per esserti etc etc." però non mi arriva nessuna mail. Ovviamente l'indirizzo email è corretto. Facendo un po di prove ho visto che in pratica l'errore dovrebbe stare in questa parte di codice
    codice:
     			  $message .= "--{$mime_boundary}\n";
    			  $message .= "Content-Disposition: attachment;\n";
    			  $message .= " filename=\"{$name}\"\n";
    			  $message .= "Content-Transfer-Encoding: base64\n\n";
    			  $message .= $data . "\n\n";
    			  $message .= "--{$mime_boundary}--\n";
    perchè appunto commentandolo la mail arriva però ovviamente senza allegato.
    Comunque il codice per intero è questo:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Inserimento Dati</title>
    
     
    </head>
    <body>
    <?php
    	$nome	= $_POST['nome'];
    	$cognome = $_POST['cognome'];
    	$tel = $_POST['tel'];
    	$email = $_POST['email'];
    	$scelta = $_POST['scelta'];
    	$dicci = utf8_encode($_POST['dicci']);
    	$subject="glamshow registrazione";
    	$check = $_POST['trat'];
    	//$to = "info@glamshow.it";
    	$to = "ant.ostuni@gmail.com";
    	
    
    			 	
    
    	if($check!=""){
    		$altezza = $_POST['altezza'];
    		$seno = $_POST['seno'];
    		$vita = $_POST['vita'];
    		$fianchi = $_POST['fianchi'];
    		$scarpe = $_POST['scarpe'];
    		$occhi = $_POST['occhi'];
    		$capelli = $_POST['capelli'];
    		$eta = $_POST['eta'];
    		
    		$tmp_name = $_FILES['userfile1']['tmp_name'];
       		$type = $_FILES['userfile1']['type'];
       		$name = $_FILES['userfile1']['name'];	
    
    		$message .= "Nome: ".$nome."\nCognome: ".$cognome."\nNumero di Telefono: ".$tel."\nIndirizzo e-mail: ".$email."\nProfessione: ".$scelta."\n";
    		$message .= "Dicci di te: ".$dicci;
    		$message .= "\nAltezza: ".$altezza.
    					"\nSeno: ".$seno.
    					"\nVita: ".$vita.
    					"\nfianchi: ".$fianchi.
    					"\nScarpe: ".$scarpe.
    					"\nOcchi: ".$occhi.
    					"\nCapelli: ".$capelli.
    					"\nEtà: ". $eta;		 
    		
    		if(is_uploaded_file($tmp_name)){
    
    			$message .= "\n\nIn allegato il file: $name";
    			$file = fopen($tmp_name,'rb');
    			$data = fread($file,filesize($tmp_name));
    			fclose($file);
    			$data = chunk_split(base64_encode($data));	
    		 	$semi_rand = md5(time());
      			$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    				
    			  $headers = "From: $email\n" .
    			  $headers .= "\nMIME-Version: 1.0\n";
    			  $headers .= "Content-Type: multipart/mixed;\n";
    			  $headers .= " boundary=\"{$mime_boundary}\"";
    					
    			  $message .= "This is a multi-part message in MIME format.\n\n";
    			  $message .= "--{$mime_boundary}\n";
    			  $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    			  $message .= "Content-Transfer-Encoding: 7bit\n\n";
    			  $message .= $messaggio . "\n\n";
     			  $message .= "--{$mime_boundary}\n";
    			  $message .= "Content-Disposition: attachment;\n";
    			  $message .= " filename=\"{$name}\"\n";
    			  $message .= "Content-Transfer-Encoding: base64\n\n";
    			  $message .= $data . "\n\n";
    			  $message .= "--{$mime_boundary}--\n";
    		}
    
    		if(mail($to, $subject, $message, $headers))
    				echo "Grazie per la registrazione, la tua richiesta è andata a buon fine";
    		else
    				echo "Errore nell'invio della e-mail";
    
    	}
    	else{
    		echo "Per poter inviare i propri dati è necessario dare il consenso al trattamento dei dati personali
    ";
    		echo "<a href=\"iscriviti.html\">Torna indietro</a>";
    	}
    		
    
    
    		
    	
    ?>
    
    </body>
    </html>
    Che cosa sbaglio?!?!?!?

  2. #2
    Perchè invece di creare il messaggio MIME manualmente non ti affidi ad una delle tante classi già pronte e testate (es. phpmailer)?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    48
    E come si fa? Il codice che ho scritto come andrebbe riscritto?

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    48
    Ma quando mi chiede di inserire il server SMTP io dovrei mettere quello del sito da dove parte la mail?
    Perchè è un form d'iscrizione che sta su un sito e i dati di questo form andranno a formare il testo della mail che poi arriverà sempre al dominio del sito! Mi sono spiegato bene?

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.