PhpMailer e salvataggio allegato sul server

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Salve...Io ho 2 file...1 html col form per l'invio di un allegato e 1 php con la classe phpmailer. Io in pratica vorrei che quando uno allega e mi manda il file che risiede sul suo compurer, tale file non si salvasse sul mio server o se c'era un modo per eliminare in automatico tale file salvato da phpmailer.

Se proprio non c'è modo di fare una cosa o un'altra mi dite come posso includere tale file in una cartella "temp" che risiede nella cartella di phpmailer? Perchè adesso tutti i file allegati me li trovo nella cartella phpmailer.

Grazie

HTML

HTML:
<div>
<form action="http://fabiobarba.altervista.org/PHPMailer/mailManager.php" enctype="multipart/form-data" method="POST">
<table><tbody>
<tr> <td>Nome</td> <td><input class="text" name="nome" size="20" type="text" /></td> </tr>
<tr> <td>Cognome</td> <td><input class="text" name="cognome" size="20" type="text" /></td> </tr>
<tr> <td>Email</td> <td><input class="text" name="email" size="20" type="text" /></td> </tr>
<tr> <td>Messaggio</td> <td><textarea cols="20" name="messaggio" rows="2"></textarea></td> </tr>
<tr> <td>File</td> <td><input name="allegato" type="file" /></td> </tr>
<tr> <td></td> <td><input name="sub" type="submit" value="Invia" /><input name="res" type="reset" value="Annulla" /></td> </tr>
</tbody></table>
</form>
</div>

PHP:

PHP:
<?php
require_once('class.phpmailer.php');
//upload dell'allegato
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $_FILES['allegato']['name']))
{
echo "Errore nel caricamento dell'immagine";
}
else{
//invio mail
$mail = new PHPMailer();
$mail->SetFrom($_POST['email'],$_POST['nome']."".$_POST['cognome']); //mittente
$mail->AddAddress("[email protected]", "Nome destinatario"); //destinatario
$mail->Subject = "Invio mail da form"; //oggetto
$mail->Body = $_POST['messaggio']; //corpo del messaggio
$mail->AddAttachment($_FILES['allegato']['name']); //allegato appena caricato sul server

if(!$mail->Send())
{
echo "Messaggio non inviato! <p>";
echo "Errore: " . $mail->ErrorInfo;
exit;
}
echo "Message inviato con successo";
}

?>

<!-- QUI INVECE REINDIRIZZO L'UTENTE DOPO 4 SECONDI ALLA PAGINA CHE VOGLIO -->
<script language="JavaScript" type="text/javascript">
window.setTimeout ("location.href=('http://fscg.blogspot.it/p/manutd-2003.html')", 4000);

// -->
</SCRIPT>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
puoi provare così (al massimo non funzia)
PHP:
<?php
require_once('class.phpmailer.php');
$path="cartella/";//cartella dove vuoi salvare i file (attento al percorso)
//upload dell'allegato
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $path.$_FILES['allegato']['name']))
{
echo "Errore nel caricamento dell'immagine";
}
//....
?>
poi per eliminare
PHP:
<?php
//....
if(!$mail->Send())
{
echo "Messaggio non inviato! <p>";
echo "Errore: " . $mail->ErrorInfo;
exit;
}
echo "Message inviato con successo";
}
if(file_exists($path.$_FILES['allegato']['name'])){//verifichi che sia stato caricato
	unlink($path.$_FILES['allegato']['name']);// e lo elimini
}
?>

p.s.
quando scrivi del codice ricordati fi inserirlo tra gli appositi tag (barra formattazione post 2° riga ultime tre iconcine, nell'ordine CODE, HTML, PHP)
 

newanfa

Utente Attivo
12 Mag 2010
131
0
0
Ok. Risolto grazie a borgo Italia. Si può chiudere. Grazie Mille.

ciao
puoi provare così (al massimo non funzia)
PHP:
<?php
require_once('class.phpmailer.php');
$path="cartella/";//cartella dove vuoi salvare i file (attento al percorso)
//upload dell'allegato
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], $path.$_FILES['allegato']['name']))
{
echo "Errore nel caricamento dell'immagine";
}
//....
?>
poi per eliminare
PHP:
<?php
//....
if(!$mail->Send())
{
echo "Messaggio non inviato! <p>";
echo "Errore: " . $mail->ErrorInfo;
exit;
}
echo "Message inviato con successo";
}
if(file_exists($path.$_FILES['allegato']['name'])){//verifichi che sia stato caricato
	unlink($path.$_FILES['allegato']['name']);// e lo elimini
}
?>

p.s.
quando scrivi del codice ricordati fi inserirlo tra gli appositi tag (barra formattazione post 2° riga ultime tre iconcine, nell'ordine CODE, HTML, PHP)
 

Ramboz89

Nuovo Utente
20 Nov 2012
6
0
0
ciao ragazzi,ho implementato anche io la classe phpmailer ma nonostante il metodo send non dia problemi, infatti mi dice email inviata con successo, l'email non arriva sia se inserisco l'allegato sia che commento la riga.
PHP:
<?php 
require_once "config/class.phpmailer.php";
//upload dell'allegato
$path="ftp_upload/curriculum/";
if (!move_uploaded_file($_FILES['CV']['tmp_name'], $path.$_FILES['CV']['name'])) {
    echo "Errore caricamento allegato"; 
} 
else{
    
    $destinatario = $_POST['Dest'];
    $mittente = $_POST['Mail'];
    $oggetto = "Candidatura";
    $messaggio = "Nome: ".$_POST['Nome']."\nCognome: ".$_POST['Cognome']."\nResidenza: ".$_POST['Residenza']."\nTelefono: ".$_POST['Telefono']."\nMessaggio: ".$_POST['Messaggio'];
    $messaggio="Ciao";
    //invio mail 
    $mail = new PHPMailer(); 
    $mail->SetFrom($mittente,$_POST['Nome']."".$_POST['Cognome']); //mittente 
    $mail->AddAddress($destinatario, "Masterweblab"); //destinatario 
    $mail->Subject = "Nuova Candidatura"; //oggetto 
    $mail->Body = $messaggio; //corpo del messaggio 
    //$mail->AddAttachment($path.$_FILES['CV']['name']); //allegato appena caricato sul server 
    
    if(!$mail->Send()) { 
        echo "Messaggio non inviato! <p>"; 
        echo "Errore: " . $mail->ErrorInfo; 
        exit; 
    } 
    echo "Candidatura inviata con successo.Ti contatteremo a breve!"; 
} 
if(file_exists($path.$_FILES['CV']['name'])){//verifichi che sia stato caricato 
    unlink($path.$_FILES['CV']['name']);// e lo elimini 
}
sapete aiutarmi? ho provato a vedere se era un problema pure del messaggio, per questo quel $messaggio="ciao" dopo la vera stesura.
 

Ramboz89

Nuovo Utente
20 Nov 2012
6
0
0
edit: scusate se non ho aperto una nuova discussione.
se è un problema lo faccio :elvis:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a fare queste correzioni
PHP:
<?php
//.....
$mail->IsHTML(true);//aggingi questa
//...
$mail->From=$mittente." ".$_POST['Nome']."".$_POST['Cognome'];//modifica questa
//....
if($_FILES['CV']['tmp_name'] !=""){//aggiungi l'if se il curriculum non allegato
	$mail->AddAttachment($path.$_FILES['CV']['name']);
}
//....
?>
poi una cosa
tu metti
PHP:
$destinatario = $_POST['Dest'];
il destinatario sei tu? se si prova a mettere
PHP:
$destinatario= "tuo_indirizzo@tuo_dominio.it";

p.s.
fai pochi controlli su quanto ti inviano soprattutto sul tipo di allegato
 

Ramboz89

Nuovo Utente
20 Nov 2012
6
0
0
ciao borgo,
grazie per le risposte e le correzioni, ma stanotte nel pieno del sonno mi sono arrivate 1000 notifiche sul cellulare ;);)
erano tutte le mail che mi ero inviato con un grosso ritardo ovviamente. adesso mi chiedo se è normale!
comunque i controlli li ho fatti già sul campo input file nel form, consentendo solo pdf doc e docx però un ulteriore controllo lato server non fa male ;) grazie
 

Ramboz89

Nuovo Utente
20 Nov 2012
6
0
0
;) grazie ancora. ma ne sai niente di questa cosa che phpmailer invia le mail dopo ore e ore?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
;) grazie ancora. ma ne sai niente di questa cosa che phpmailer invia le mail dopo ore e ore?
no non credo che sia colpa di phpmailer. capita talvolta anche con outlook e similari.
tempo fa su focus ho letto un articolo che spiegava come una email inviata dal terzo piano al secondo di uno stesso condomio fa, per arrivare, spezzetata il giro del mondo
 

Ramboz89

Nuovo Utente
20 Nov 2012
6
0
0
strano sai perchè:ho fatto in modo che se il tipo non allega alcun curriculum faccio una chiamata con ajax ad un altro file mail.php, così informo subito dell'esito della mail. quella mail arriva istantaneamente. questa ci mette un botto e non è colpa dell'allegato.
in più volevo chiederti perchè inserire la riga:
$mail->IsHTML(true);//aggingi questa
nonostante sia una mail di semplice testo?
 
Discussioni simili
Autore Titolo Forum Risposte Data
G phpmailer e php 8.1 con estensione mysqli PHP 6
E Hosting e phpmailer PHP 0
E PHPMailer PHP 4
D PHPMailer con account gmail PHP 14
I PHPMailer non funziona PHP 13
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
Z email phpmailer non arrivano PHP 0
B Invio email multiple PHPMAILER PHP 3
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
R Phpmailer SMTP PHP 23
A problema con phpmailer PHP 10
metalgemini PHPmailer non arriva allegato 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

Discussioni simili