PHPmailer non arriva allegato

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Ciao a tutti, dopo una serie di tentativi, ho ripiegato su PHPmailer. Arriva la mail ma non l'allegato.

Questo è il pezzo di codice adattato alle mie esigenze che dovrebbe inviare email + allegato:

PHP:
//QUESTA PARTE DI CODICE INVIA LA MAIL          
require "PHPMailer_5.2.1/class.phpmailer.php";
$messaggio = new PHPmailer();         
//$messaggio->IsSMTP();         
//$messaggio->Host='Host SMTP';         
$messaggio->From=$_POST["mitt"];  
$messaggio->AddAddress($_POST["chooseaddress"]); 
$messaggio->AddReplyTo('[email protected]'); 
$messaggio->Subject=$_POST["oggetto"];         
$messaggio->Body=$_POST["msg"];          
//percorso all'allegato         
$file = $_FILES['allegato'];         
$namefile = $_FILES['allegato']['name'];        
$messaggio->AddAttachment($namefile);         
if(!$messaggio->Send()) 
   {             
    $msg = "<div style='margin-left:5px; color:FF0000'>Errore: <br>Si è verificato un errore durante l'invio della mail.</div><br><br>";             
   }         
else     
   {               
     $msg = "<div style='margin-left:5px; color:#00CC00'>Messaggio inviato con successo.</div><br><br>";            
   }         
//$messaggio->SmtpClose();        
unset($messaggio);         
echo $msg;          

//FINE INVIO EMAIL

Qualche santo che mi può aiutare?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
dopo varie prove (fallite) sono riuscito ad inviare un allegato facendo questo ambaradan

PHP:
<?php
//.....previo controlli files ammessi e loro grandezza
function file_da_allegare($file_nome, $file_tmp){//$_FILES['foto_1']['name'], $_FILES['foto_1']['tmp_name']
	//ricavo il nome del file e del temp cone gli eventuali percorsi
	$nome_file=pathinfo($file_nome, PATHINFO_BASENAME);
	$nome_file_temp=$file_tmp;
	//rivavo il percorso temporaneo con + slash finale
	$cartella_temp=pathinfo($nome_file_temp, PATHINFO_DIRNAME);
	//aggiungo lo slash in funzione del sistema operativo
	if (strpos($cartella_temp, '/') !== false){
		$cartella_temp.= "/";
	}else{
		$cartella_temp.= "\\";
	}
	//e ricavo il nome del file da allegare con il suo percorso
	$da_allegare=$cartella_temp.$nome_file;
	//uploado e verifico
	if(move_uploaded_file($nome_file_temp, $da_allegare)){
		return $da_allegare;//file caricato in cartella temporanea e nome da indicare a PHPmailler
	}else{
		return FALSE;//c'è stato un errore
	}
}//fine function file da allegare
//....
	if($foto_1 !=""){//c'è un file da allegare -  carico in cartella temporanea
			$allegare=file_da_allegare($_FILES['foto_1']['name'],$_FILES['foto_1']['tmp_name']);//da trasmettere a maillerphp
			if($allegare == FALSE){
				//$messaggio_OK_KO : messaggi di errore o di invio eseguito
				$messaggio_OK_KO.=$allno_mess[5];//in $allno_mess[5] => "<br>non sono riuscito ad allegare il file<br>l'email sar&agrave; inviata comunque"
				$allegare="";//se errore vuoto la variabile
			}
		}
//.....

		if($allegare !=""){//ho un allegasto da inviare
			$messaggio->AddAttachment($allegare);
		}
//.......
?>
certo è un po' macchinoso però funzia, se riesci a semplificare fammi sapere
 

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Ciao ragazzi e grazie per il tempo che perdete ad aiutarmi.
Ho provato a modificare la riga, ho allegato un immagine jpg, arriva l'allegato ma non è quello da me scelto. Arriva un allegato di tipo "application/octet-stream" dal nome "phpsB3SUC" e che non posso aprirlo con niente. Help!

PS: il sito gira sotto linux non so se puo essere di aiuto...
 

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Ancora grazie pian piano mi state illuminando sempre più :love:
In pratica il succo del problema è che arriva nell'email solo la directory senza il nome del file?
Bisogna quindi assegnare alla funzione AddAttachment() un valore del tipo cartella_temporanea_su_server/nome_del_file?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
devi fare tutto l'ambaradan che ho postato, cioè definire la funzione che ricava il nome da allegare che è poi quello da indicare a phpmailler
 

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Si si ma volevo capire :D cmq ho notato che se scarico l'allegato e gli metto stensione .jpg si vede l'immagine quindi è solo questione di rinominare il file ma vorrei capire x bene come fare senza fare l'odioso copia e incolla :D
Vedo che tu passi $allegare a phpmailer, questa variabile che valore ha in pratica? "cartella_su_server/nome_file_temporaneo_su_server"?


PS: mi sto studiando la tua funzione :D
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
I PHPMailer non funziona PHP 13
Z email phpmailer non arrivano PHP 0
E Hosting e phpmailer PHP 0
E PHPMailer PHP 4
D PHPMailer con account gmail PHP 14
I Guida/Tutorial configurare PHPMailer per inviare mails tramite contact form? PHP 2
A PHPMAILER e UMLAUTS (lettere tedesche äüäöß) PHP 2
G PHPMailer: SMTP error Gmail PHP 8
M Come usare la nuova versione di phpmailer? PHP 2
P [PHPmailer] SMTP Aruba.. problemi PHP 8
G Invio Mail con PHPMailer, problemi SMTP PHP 7
V PHPMailer PHP 11
V PHPmailer allegato PHP 0
P problemi invio email con phpmailer PHP 47
P phpmailer PHP 0
localhost.nicola File log erroe con phpmailer PHP 3
A problema phpmailer PHP 32
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
O PhpMailer, Composer e Netbeans PHP 1
M Come inviare due mail diverse con phpmailer PHP 6
B Invio email multiple PHPMAILER PHP 5
L Problema phpmailer,jquery e smtp PHP 1
P Problemi visualizzazione html con phpmailer PHP 6
P phpmailer e file_get_contents PHP 1
P Phpmailer ed wind-infostrada PHP 20
felino PHPMailer: Indirizzo IP e Immagine PHP 6
lsnight Phpmailer per principianti PHP 7
K form con phpmailer PHP 18
P Invio multiplo mail con phpmailer PHP 5
L problema classe phpmailer con la mia classe clsMail PHP 2
G problema con phpmailer 5.2.1 PHP 1
minatore Phpmailer PHP 6
M phpmailer multiplo in più pagine di un sito PHP 5
N PhpMailer SELECT e OPTION PHP 190
N PhpMailer e salvataggio allegato sul server PHP 11
R Phpmailer SMTP PHP 23
A problema con phpmailer PHP 10
piccino PHPMailer: inserire allegato PHP 5
E Invio email (era: phpmailer) PHP 52
F Phpmailer e l'indirizzo del mittente PHP 3
F PhpMailer PHP 5
borgo italia phpmailer?? PHP 7
C phpmailer PHP 7
emanuelevt phpmailer e altervista PHP 3
catellostefano Problema con la classe class.phpmailer.php PHP 5
SolidSnake4 PHPmailer errore PHP 4
A classe PHPMailer e mail di Libero PHP 1
S php mail vs phpmailer PHP 0
T Problemi phpmailer x invio ad indirizzi di libero. Aiutatemi! PHP 14
R PhpMailer inserire Allegato PHP 1

Discussioni simili