Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Inviare email alla scadenza

    Salve, ho creato uno script dove vado a caricare dei file, tramite un form. Ora siccome i dati sono dei pagamenti e vanno fatti entro una data specifica, vorrei fare in modo che se io carico il file oggi e scade il 16 il 12 (2-3 gg prima )viene inviato un email per avvisare che la data di scadenza si avvicina. Potete aiutarmi?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Salva nel database la data di scadenza, ogni giorno fai partire uno script che fa una query sulla tabella con le scadenze e recuperi le entry con
    data_di_scadenza - data_corrente = 2
    se la query ti ritorna dei record mandi un'email ai rispettivi indirizzi email.

    La differenza tra date puoi farla a seconda di come salverai le date, ma puoi fare riferimento alla funzione datediff di MySQL (non di PHP, così fai solo una select)

    per esempio
    SELECT * FROM tabella WHERE DATEDIFF(campo_data_scadenza,NOW()) = 2;

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Grazie per la risposta. Non ho capito come far partire lo script in automatico anche senza che il sito venga visitato, puoi farmi un esempio, o se hai qualche guida in merito?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il server deve supportare l'uso di CronTab se è Linux, l'uso dello strumento di pianificazione eventi se è Windows, in tal modo puoi pianificare il lancio di script ad intervalli di tempo che decidi tu.

    Se tali servizi non sono disponibili, potresti affidarti a siti esterni ai quali ti registri, gli dici il link dello script, la frequenza con cui farlo partire e loro ci si collegano, non so se ce ne siano di gratuiti, dovresti cercare un po'.

    Ultima spiaggia: metti una chiamata allo script in una qualche pagina del tuo sito poco frequentata, ma che viene sicuramente visitata almeno una volta al giorno.
    Il fatto della pagina poco visitata è per non far partire lo script 1000 volte al giorno, ma se non ti importa puoi mettelo in homepage.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ok, adesso provo a vedere, che server sono e sono compatibili. Mentre nel caso non fossero compatibili, volendo lo script potrebbe essere avviato anche dalla visita del bot di google per esempio?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Se hai pieno controllo del server potrai sicuramente usare CronTab o la pianificazione degli eventi.
    Se non ci sono basta installarli.
    Se invece sei su un hosting condiviso basta che scrivi un'email all'assistenza e chiedi.

    Per quanto riguarda i bot, qualsiasi cosa acceda alla pagina con lo script causerà l'esecuzione dello script.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, ho provato a fare una prova del genere:

    Questa e l'ipotetica tabella dove salvo i dati:

    Poi facendo una select

    Codice PHP:
    <?php

    include_once ('config.php');

    $oggi = (date("d/m/Y"));

    $query "SELECT * FROM remid WHERE data_rem = '$oggi'";
    $res mysql_query($query);
    while (
    $row mysql_fetch_assoc($res))  
    if (isset(
    $res)) {

    $destinatario $row['email']; 
    $oggetto "Archivio: Scadenza pagamenti"
    $messaggio 
    "Gentile Cliente, \n
    Hai un documento in scadenza. \n
    Controlla la tua area privata, per prenderne visione. \n 
    Cordiali Saluti."
    ;
    mail($destinatario$oggetto$messaggio"From: sito.it <sito@sito.it");

    if (!
    $res) {
        die(
    "Errore nella query $sql: " mysql_error());

    }
    }
    ?>
    Lo script, verrebbe lanciato ogni giorno in automatico dal server, ho fatto una prova, e sembra che funziona, l'unica cosa e che su 4 email solo a 2 viene inviata l'email. Come potrei verificare se si tratta di un errore del mio script, oppure del gestore email? Inoltre come concetto va bene? Ho deciso di far inserire la data del avviso al momento del caricamento del file dal gestore del sito, in questo modo ha più libertà di scelta. Tipo inizialmente, volevo fare che l'utente inseriva solo la data di scadenza, poi lo script calcolava -5 giorni da quella data, ma poteva capitare che il giorno coincideva nei giorni festivi, e quindi la notifica era inutile. Se avete altri consigli su come migliorare, e rendere piu affidabile, lo script. accetto qualsiasi consiglio.

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.