Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    Controllo esistenza file prima di invio email

    Salve a tutti, mi chiamo Francesco e sono lieto di far parte di questo Forum!
    Essendo un neofita della materia, gradirei un aiuto su un ciclo while da inserire prima di un invio email.
    In pratica, devo allegare ad una email un'immagine creata tramite imagettftext. L'immagine è generata nello stesso preciso istante in cui l'email deve partire, con la conseguenza che l'email arriva a destinazione senza allegato.
    Pensavo di "temporeggiare" con l'invio dell'email inserendo un ciclo while fino a quanto l'immagine non viene trovata...
    come posso fare? Ecco il codice
    <?php
    $file_name = $codice2.".png"; //nome dell'immagine
    $attachment = $file_name;

    $url = "/web/htdocs/www.miodominio.net/home/cartella/".$attachment;
    require("../inc/class.phpmailer.php");
    $mail=new PHPMailer();
    $mail->From="mittente";
    $mail->FromName="nome";
    $mail->AddAddress($email);
    $mail->Subject="Oggetto";
    $msg="<html>ciao</html>";
    $mail->MsgHTML($msg);
    $mail->AddAttachment($url);
    $mail->Send();
    ?>

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, semplicemente puoi mettere un check sull'esistenza del file con file_exists() prima dell'invio specificando il path dell'immagine.
    Il while lo vorresti per attendere la creazione? Come crei l'immagine e in quale momento?
    Mettere solo un while potrebbe bloccare l'esecuzione a meno chi ci sia un controllo/timeout per la verifica. Se si dovesse verificare un errore e non se non fosse gestito resteresti fisso in attesa.
    Se crei un un immagine con le librerid GD o simili e semplicemente con un upload per esempio, la creazione sarebbe bene o male immediata. Pertanto file:_exists() potrebbe bastare senza un while()
    Ultima modifica di m4rko80; 01-12-2016 a 16:58

  3. #3
    Ciao, e se il file non esiste (ancora) ???? penso serva sempre un while

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Cosa intendi per non esiste ancora? Ho ipotizzato come crearlo con 2 esempi. In che modo viene creato questo file per l'invio?

  5. #5
    l'esigenza del while nasce dal fatto che, attivando il debug, quando invio l'email mi da il warning di "Could not access file". Ho fatto la prova inserendo la path di un file già presente sul server e il tutto funziona egregiamente. Quindi, pensavo di utilizzare il while (o qualcosa di alternativo) per "attendere" la creazione dell'immagine dinamica creata con librerie GD pochi millesimi di secondo prima di inviare l'email...


    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao, semplicemente puoi mettere un check sull'esistenza del file con file_exists() prima dell'invio specificando il path dell'immagine.
    Il while lo vorresti per attendere la creazione? Come crei l'immagine e in quale momento?
    Mettere solo un while potrebbe bloccare l'esecuzione a meno chi ci sia un controllo/timeout per la verifica. Se si dovesse verificare un errore e non se non fosse gestito resteresti fisso in attesa.
    Se crei un un immagine con le librerid GD o simili e semplicemente con un upload per esempio, la creazione sarebbe bene o male immediata. Pertanto file:_exists() potrebbe bastare senza un while()

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Se utilizzi le gd e quind inizializzi la creazione con ad esempio imagecreatetruecolor, per forza di cose dopo il comando, avrai un return della funziona con un identificativo o false in caso di errore. Se false, ovviamente l'immagine non sarà persente.
    Al contrario l'immagine ci sarà. Se poi vuoi controllare nel dettaglio puoi aggingere il controllo anche sul tipo di file creato , il peso o quant'altro. In base a questo, inviare o meno l'email.

  7. #7
    la cosa strana è che se al posto di

    $msg="<html>ciao</html>";

    scrivo

    $msg="<html><img src='http://www.miodominio.net/home/cartella/".$attachment; /></html>";

    l'immagine viene visualizzata dentro il messaggio email....
    questo non riesco proprio a spiegarmelo.

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Be questo è ovvio, non e' il modo di inviare un allegato per email diciamo
    Ci sono le specifiche opzioni per farlo in base se usi mail() o phpmailer per esempio.

  9. #9
    perdonami, continuo a non capire.. ma se $attachment passa i valori, vuol dire che l'immagine è stata creata.....

    Inoltre, se metto il file_exists

    if (file_exists($file_name)) // o qualcosa del genere

    devo stabilire che succede se non trova il file?'
    Ultima modifica di vecchiesentenze; 01-12-2016 a 17:43

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    $attachement in questo caso è solo il nome del file e non il puntamento al file fisico diciamo. Nella mail vedi un immagine perchè usi un tag img e nel suo src c'è una url che punta al file immagine sul tuo server/sito , per questo la vedi.

    Da quel che ho capito vuoi inviare la mail se il file esiste altrimenti non inviarla. Se così fosse ovviamente in caso di errore dovresti stoppare l'invio e mostare un errore.

    Qua c'è un esempio di come inserire allegati usando mail() di php

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.