Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Invio email con allegati

    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:
    Codice 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(); 
    in pratica prendo dal form, l'allegato l'oggetto e il testo
    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:

    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"


    già che ci sono chiedo anche con cosa dovrei settare:

    //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à

  2. #2

  3. #3
    l'errore che ricevi è perchè a fopen devi passare il percorso assoluto del file che a occhio dovrebbe essere questo
    codice:
    /web/htdocs/www.miosito.eu/home/
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

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.