Salve
devo mandare un'email con un allegato via php
ho scaricato questo script
http://php.html.it/script/vedi/3321/...-con-allegato/
poi in pratica faccio questo:
in pratica prendo dal form, l'allegato l'oggetto e il testoCodice PHP:if ($_POST["nascosto"]==1){
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;
if(!isset($_SERVER)) $_SERVER = $HTTP_SERVER_VARS;
$allegato="allegati/".$_FILES["upfile1"]["name"];
if(@is_uploaded_file($_FILES["upfile1"]["tmp_name"])) {
@move_uploaded_file($_FILES["upfile1"]["tmp_name"], "$allegato")
or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
}
$mail = new sentMail;
$mail->setMittente('info@miosito.eu');
$mail->setTesto($_POST["testo"]);
$mail->setOggetto($_POST["oggetto"]);
$mail->setNomeFile($_FILES["upfile1"]["name"]);
$mail->setIndFile("http://www.miosito.eu/".$allegato);
$destinatari = array();
$tutto="SELECT * FROM mail";
$query = mysql_query ($tutto,$link) or die ( "Non riesco ad eseguire la richiesta tutto".mysql_error());
while($valori = mysql_fetch_array ($query)){
$destinatari[] = $valori["email"];
}
$mail->setDestinatario($destinatari);
$mail->setTitolo($_POST["oggetto"]);
$mail->inviaMail();
prendo dal database i destinatari e cerco di mandare l'email
l'email arrivano correttamente a tutti i destinatari però senza l'allegato
inoltre mi spuntano questi warning:
Warning: fopen(http://www.miosito.eu/allegati/sito 1.rtf) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /web/htdocs/www.miosito.eu/home/mail.class.php on line 110
Warning: filesize() [function.filesize]: stat failed for http://www.miosito.eu/allegati/sito 1.rtf in /web/htdocs/www.miosito.eu/home/mail.class.php on line 111
Warning: fread(): supplied argument is not a valid stream resource in /web/htdocs/www.miosito.eu/home/mail.class.php on line 111
Warning: fclose(): supplied argument is not a valid stream resource in /web/htdocs/www.miosito.eu/home/mail.class.php on line 113
le righe in questione sono:
già che ci sono chiedo anche con cosa dovrei settare:Codice PHP:if($this->nomeFile!=''){
$f=fopen($this->indFile,'r')or die ("no");
$contenuto=fread($f,filesize($this->indFile));
$enco_att=chunk_split(base64_encode($contenuto));
fclose($f);
if($this->fType!='' && $this->indFile!=''){
$msg_body .= "\n\n--Message-Boundary\n";
$msg_body .= "Content-type: $this->fType; name=\"$this->nomeFile\"\n";
$msg_body .= "Content-Transfer-Encoding: BASE64\n";
$msg_body .= "Content-disposition: attachment; filename=\"$this->nomeFile\"\n\n";
$msg_body .= "$enco_att\n";
$msg_body .= "--Message-Boundary--\n";
}
}
//metodo che imposta il type del file
function setFileType($inFile){$this->fType=$inFile;}
//metodo che imposta il content delle mail
function setContent($inCont){$this->content=$inCont;}
grazie mille a chi mi risponderà

Rispondi quotando