potete spiegarmi come fare per mandare insieme alle email anche dei piccoli allegati, usando la funzione mail(). Grazie anticipatamente.
potete spiegarmi come fare per mandare insieme alle email anche dei piccoli allegati, usando la funzione mail(). Grazie anticipatamente.
Ho fatto delle prove qua: http://golfox.altervista.org/tutoria...con_attach.php
dovrebbe funzionare correttamente... almeno a me funziona
Ciao
grazie adesso provo...
[edit]funziona anche bene però, il form per l'email lo so fare, compresa la pagina php per mandare l'email...puoi darmi il codice che hai usato per l'allegato, vedendo quel codice mi è venuto un giramento di testa, il mio è più semplice, ma mooooolto efficace.[/edit]
Ultima modifica di domenicoragusa : 02-09-2005 alle ore 13.06.43
Beh, la parte php è corta!!! Il resto è tutto JS e HTML.Originalmente inviato da domenicoragusa
Faccio vedere sempre tutto il codice perché altrimenti non riesci a capire che variabili sono quelle che utilizzo e da dove vengono.
Comunque eccoti accontentato/a:
CiaoCodice PHP:
#### imposto l'email e la spedisco ####
$mail_boundary = md5(uniqid(time()));
$mail_headers = "From: {$from}\n";
$mail_headers .= "Reply-To: {$from}\n";
$mail_headers .= "X-Priority: 1 (Highest)\n";
$mail_headers .= "MIME-Version: 1.0\r\n";
$mail_headers .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"";
$mail_headers .= "\r\n\r\n";
$mail_headers .= "This is a multi-part message in MIME format. ";
$mail_headers .= "\r\n\r\n";
#$mail_headers .= "X-Mailer: PHP/" . phpversion();
$file = fread(fopen($file_content, "r"), $file_size);
$file = chunk_split(base64_encode($file));
$mail_body = "--$mail_boundary\n";
$mail_body .= "Content-type:text/plain; charset=US-ASCII\r\n";
$mail_body .= "Content-transfer-encoding:8 bit\r\n\r\n";
$mail_body .= "{$testo}\n\n\n\n";
$mail_body .= "--$mail_boundary\n";
$filename = basename($file_name);
$mail_body .= "Content-type:application/octet-stream; name=$filename\r\n";
$mail_body .= "Content-transfer-encoding:base64\r\n\r\n";
$mail_body .= $file . "\r\n\r\n";
$mail_body .= "--$mail_boundary--\r\n";
$ris = mail("$email", $subject, $mail_body, $mail_headers);
Va be' non fa niente, posso anche mettere l'hd on line...
Ultima modifica di domenicoragusa : 02-09-2005 alle ore 16.56.35
Se vuoi fare polemica caschi male...Originalmente inviato da domenicoragusa
Non vedo cosa ci sia di difficile nella parte di codice che ti ho messo.
Visto che ne sai a pacchi di php quelle quattro righe le dovresti capire al volo: è una banalissima sequenza di azioni e se non conosci le funzioni te le vai a vedere nel sito del php.
Ciao
Ultima modifica di golfox : 02-09-2005 alle ore 20.14.36
Ci siamo fraintesi tu hai capito che sono "un'esperto" ed invece sono un neofita; ieri ho iniziato con il php; quel codice per me è difficile...
usa lo script mio di upload allora lo puoi scaricare da qui l'unica cosa ke devi fare è sistemare la grafica xke ci ho messo 10 min a farlo e nn l'ho sistemata
grazie domani lo proverò, ora devo andare a mangiare...
Ciao
Allora scusami... quando mi hai parlato di codice "mooooolto efficace" ho pensato ad un "piaccapiquattrista"... a questo punto sarebbe più semplice se tu mi postassi il tuo codice che poi ti metto io il codice per l'allegato dato che comunque deve essere un po' modificato anche il tuo codice. Comunque fai molta attenzione all'header peché è quello che ti permette di vedere correttamente l'allegato. nella fattispecie occhio a questa riga:Originalmente inviato da domenicoragusa
e alla costruzione del body (var. $mail_body).Codice PHP:
$mail_headers .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"";
Ciao
Una domanda, giusto per capire la "filosofia" del tuo discorso: cosa centra l'upload di un file su file system con l'invio di una email con allegato?Originalmente inviato da jostock
Ciao
jostock ha detto questo perchè io poi ho detto che mettevo l'hd online, aspetta, mo di to il codice; "piaccapiquattrista" cosa significa? forse è golfoxiano...
ecco il codice
Codice PHP:
<?
$intestazioni = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
$messaggio="
<html>
<head>
<title>Email dal sito</title>
<style>
body{
color: #000000;
background-color: #ffffff;
font-family: Times new Roman;
font-size: 12pt;
text-align: justify;
}
</style>
</head>
<body>
Nome: $nome<br>
Email: $email<br>
Motivo: $motivazione<br>
Testo: $testo<br>
Ip: $REMOTE_ADDR;<br>
<hr>
</body>
<html>
";
mail("domenicoragusa@altervista.org", "Email dal sito", $messaggio, $intestazioni);
?>
Ultima modifica di domenicoragusa : 03-09-2005 alle ore 12.08.09
Allora...
Innanzi tutto devi rinunciare all'html nel corpo della e-mail perché credo ci possano essere dei problemi nella composizione della mail stessa (messaggio + allegato)... tentare non nuoce.
Consiglio: tieni presente che i css si possono disabilitare e che una mail senza "fronzoli" è sicuramente più leggibile e chiara per tutti.
Il codice che ti ho messo qua non l'ho provato, inoltre ci sono delle variabili non assegnate (quelle del file da allegare) quindi sicuramente non funziona al volo. Ti ho messo il minimo indispensabile (non c'è la priorità, il from e il reply to e altre cose). A proposito: dove tieni il file da allegare? lo tieni sul server o fai un upload?Codice PHP:
<?
$mail_boundary = md5(uniqid(time()));
$intestazioni = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: multipart/mixed; boundary=\"$mail_boundary\"";
$file = fread(fopen($file_content, "r"), $file_size);
$file = chunk_split(base64_encode($file));
$messaggio = "--$mail_boundary\n";
$messaggio .= "Content-type:text/plain; charset=US-ASCII\r\n";
$messaggio .= "Content-transfer-encoding:8 bit\r\n\r\n";
$messaggio .= "<html>
<head>
<title>Email dal sito</title>
<style>
body{
color: #000000;
background-color: #ffffff;
font-family: Times new Roman;
font-size: 12pt;
text-align: justify;
}
</style>
</head>
<body>
Nome: $nome<br>
Email: $email<br>
Motivo: $motivazione<br>
Testo: $testo<br>
Ip: $REMOTE_ADDR;<br>
<hr>
</body>
<html>
\n\n\n\n";
$messaggio .= "--$mail_boundary\n";
$filename = basename($file_name);
$messaggio .= "Content-type:application/octet-stream; name=$filename\r\n";
$messaggio .= "Content-transfer-encoding:base64\r\n\r\n";
$messaggio .= $file . "\r\n\r\n";
$messaggio .= "--$mail_boundary--\r\n";
mail("domenicoragusa@altervista.org", "Email dal sito", $messaggio, $intestazioni);
?>
Vedo che hai delle variabili tipo $motivazione, $testo e compagnia: immagino tu li prenda da un form.
Fai molta anntenzione che qua non ti ho messo l'apertura del file da allegare e comunque faresti prima a copiare il mio script che già funziona poi sarai tu ad adattarlo come vuoi.
Per avere 12 anni sei già parecchio intraprendente e quindi posso farti solo i complimenti, purtroppo per allegare un file ad una e-mail bisogna sapere un po' di cosucce di base per cui devi solo portare pazienza. Vedrai che avrai da soffrire su questa cosa.
P.S. "piaccapiquattrista" viene da PHP4 cioè il linguaggio che stai utilizzando... non c'è niente di golfoxiano :smile:
Ciao
si uso un form, ora devo aggiungere nel form il campo per il file, vorrei usare l'upload per gli allegati; il campo del file come si deve chiamare?
Grazie
P.S. che vergogna, non so neanche il nome del linguaggio che sto imparando...
ma il 4 (del php4) è la versione vero?
Ultima modifica di domenicoragusa : 03-09-2005 alle ore 13.15.32
Se vai nel mio esempio vedrai che il file viene preso dal form con il nome file e la parte che istanzia le variabili per poter spedire il file è questa:
La variabile $file_type in realtà non ti serve... l'ho messa solo per completezza e per fare delle prove.Codice PHP:
# MEMORIZZIAMO NELLA VARIABILE $file_content IL CONTENUTO DEL FILE
$file_content = $_FILES['file']['tmp_name'];
$file_name = $_FILES['file']['name'];
$file_type = $_FILES['file']['type'];
$file_size = $_FILES['file']['size'];
Ciao
P.S. si, il 4 del PHP4 corrisponde alla versione del php
per quanto riguarda i fronzoli, ho messo lo script a posto, però non riesco a farmi mandare l'allegato, vsto che non voglio farti perdere tempo e non voglio perdere tempo, metterò l'hd on line, non fa niente, quando diventerò più esperto ci proverò nuovamente;
ora metto il codice del mio script, mooooolto più corto e funzionale ugualmente.
Grazie per il tuo aiuto.Codice PHP:
<?
$intestazioni = "MIME-Version: 1.0\r\n";
$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
$messaggio="
Nome: $nome<br>
Email: $email<br>
Motivo: $motivazione<br>
Testo: $testo<br>
Ip: $REMOTE_ADDR;<br>
";
mail("domenicoragusa@altervista.org", "Email dal sito", $messaggio, $intestazioni);
?>
Ciao
Ora vado a stu diare nel tuo sito....chissà forse divento bravo come te...
P.S. dove sono i tutorial???? una pagina bianca?
Ultima modifica di domenicoragusa : 03-09-2005 alle ore 19.13.56
Purtroppo non ho mai tempo di mettere a posto il mio sito che tra l'altro deve essere anche un po' "rinfrescato". Comunque ti manderò un mp con i link e lì potrai vedere quello che ho fatto.Originalmente inviato da domenicoragusa
Ciao
ok, grazie