invio automatico email

vide91

Nuovo Utente
31 Mag 2012
26
0
0
Salve a tutti mi trovo a dover affrontare un problema...sto progettando un piccolo sito in php...utilizzando easyphp....ho una tabella utenti dove c'è come campo email e un altra tabella dove c'è una data di scadenza...quando la data di scadenza arriva....deve partire un email a quell utente...come devo fare?
 

vide91

Nuovo Utente
31 Mag 2012
26
0
0
ho queste tabelle "utente" "prenotazione" ...in utente ho ("id_utente" chiave primaria ,"email",....) in prenotazione ho ("id_prenotazione" chiave primaria,"id_utente" chiave esterna , "data scadenza")
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi ero dimenticaso una cosa che guardando le tabelle mi è tornata in mente
data scadenza quale è il suo formato? (io spererei in timestamp semplificherebbe molto le cose)
sappimi dire
comunque ecco uno schema di come potresti fare

PHP:
<?php
//dati connessione al db ecc.......
$oggi=time();//o date() con la stessa formattazione che hai nel campo data_scadenza in prenotazione
$query("SELECT * FROM utente as u, prenotazione as p WHERE u.id_utente=p.id_utente AND p.data_scadenza= '$oggi'");
$result=mysql_query($query);
if(mysql_num_rows($result)==0){
	echo "non ci sono scadenze";
}else{
	$oggetto="scadenza iscrizione";
	$da="tua_email@pinco_pallo.it";
	while($riga=mysql_fetch_array($query)){
		$nome=$riga['nome_clente'];//immagino che tu abbia il nome
		$email=$riga['email'];
		$scadenza=$riga['email'];
		$testo="Egr. Sig. $nome<br>la informiamo che in data $scadenza &egrave; scaduta la sua iscrizione<br>cordiali saluti,<br>Pinco De Pallis";
		//qui uso la funzione mail() ma sarebbe meglio che tu usassi la classe phpmailer o simile
		if(mail($email,$oggetto,$testo,"from $da")){
			echo "email inviata a $nome con successo<br>";
		}else{
			echo "non riuscito ad inviare email a $nome<br>";
		}
	}
}
?>
guarda che è un'idea che deve essere perfezionata.
p.s.
se usassi il timestamp potrest far partire prima l'email (es 10 gg prima della scadenza) es.

PHP:
<?php
//.....
$mancano_10gg=time()-(10*24*3600);
//e la query
$query("SELECT * FROM utente as u, prenotazione as p WHERE u.id_utente=p.id_utente AND p.data_scadenza >= $mancano_10gg");
//...
?>
in questo caso però ti conviene mettere un altro campo a prenotazione chiamato (es.) avvisato e spedisci l'email solo se avvisato=0,
dentro l'if(mail($email,$oggetto,$testo,"from $da")) se invio è ok, uppi il campo a 1
 

vide91

Nuovo Utente
31 Mag 2012
26
0
0
veramente la data stavo ancora aspettando prima di assegnare il tipo perchè avevo letto che avevano dei problemi...quindi in mysql come potrei assegnarla?
 

vide91

Nuovo Utente
31 Mag 2012
26
0
0
un dubbio ...ma questo script come fa a funzionare in automatico all'avvio del server?io lo devo chiamare ogni volta
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quello che so io ci sone dei programmi (mi sembra cronjob) che lanciano gli script ad intervalli di tempo prestabiliti, programmi (credo) che devi far risiedere nel server dove hai lo script, altrimenti devi richiamarlo periodicamente e quuando richiamato esplora il db e invia le email (quello lo fa da solo).
se decidi per timestamp basta che il campo sia
scadenza int(15)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
e con scadenza int(15) accetta i trattini o i "\" delle date?
ciao,
no
la comodità del timestamp è che è un numero intero che rappresenta il numero di secondi da mezzanotte del 1.1.1970 ad oggi.
è comodo per gli ordinamenti i calcoli (es differenza di giorni). certo è "umanamente poco comprensibile e quindi a stampa va trasformato in data "umana"
prova quest'esempio
PHP:
<?php
$oggi=time();
echo "$oggi<br>";//vedrai un numero intero
echo "oggi è il ".date("d/m/Y,$oggi)."<br>"; //vedrai che si trasforma in data"umana"
//semplicità di calcolo
$ieri=time()-(24*60*60);//tolgo 24 ore*60minuti*60secondi
echo "$ieri<br>";//vedrai il numero di prima a cui sono sottratti 84600 secondi
echo "invece ieri era il ".date("d/m/Y,$ieri)."<br>";
?>
io quando uso le date mi sono sempre trovato meglio ad usare il timestamp come detto es negli ordinamenti
se la dat nel db è in formato "umano" bisogna, per ordinare in funzione della data, che la data sia inserite del tipo Y m d (2012 06 14 ad es.)
es se la query ..... ORDE BY data
se in formato italiano 18 02 2012 viene dopo 06 11 2012 (assurdo)

quindi comunque poi a video devi comunque trasformarla probabilmente in formato italiano (d m Y)



scusa nella fretta mi sono dimenticato degli apici

PHP:
<?php
$oggi=time();
echo "$oggi<br>";//vedrai un numero intero
echo "oggi è il ".date("d/m/Y",$oggi)."<br>"; //vedrai che si trasforma in data"umana"
//semplicità di calcolo
$ieri=time()-(24*60*60);//tolgo 24 ore*60minuti*60secondi
echo "$ieri<br>";//vedrai il numero di prima a cui sono sottratti 84600 secondi
echo "invece ieri era il ".date("d/m/Y",$ieri)."<br>";
?>
 
Ultima modifica:

vide91

Nuovo Utente
31 Mag 2012
26
0
0
grazie per il tuo script ...prima di avventurarmi nell'email...volevo fare qualcosa di più semplice...ho fatto uno script che vedeva l'orario poi io gli ho impostato un orario e mi diceva se era "gia passata" o "ancora doveva arrivare"...questo volevo automatizzarlo ogni 5 minuti...e avevo pensato a utilizzare "operazioni pianificate" di window...solo che mi fa un download del mio script e per farlo funzionare devo cliccare su "apri"...volevo saltare il passaggio del click su apri sai come far automatizzare questo passaggio...grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ho mai usato le operazioni pianificate e quindi vado ad intuito.
es. se hai chiamato il tuo script data.php non puoi richiamarlo semplicemente (se fosse htm o html col doppio click sul nome ti si apre direttamente nel bw la pagina) ma se lo fai con un file php l'unica cosa che ottieni è quella di vedere il codice.
per vedere la pag (non il codice) devi avere un server locale e richiamare il file digitando nella barra del bw http://localhost:8080/.../data.php
quindi forse nelle operazioni pianificate devi mettere "http://localhost:8080/.../data.php"

ma forse ho detto una put....ta
 

vide91

Nuovo Utente
31 Mag 2012
26
0
0
ok...grazie lo stesso ho risolto con un programmino di scheduler...grazie ancora per l'argomento "time"
 
Discussioni simili
Autore Titolo Forum Risposte Data
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
Y Invio email automatico database background Database 1
voldemort Invio email di auguri in automatico ASP.NET 1
A [PHP] Invio automatico dati da form PHP 6
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
F Invio automatico mail php PHP 0
carter Wordpress: Invio automatico mail Mailpress plugin WordPress 6
M invio automatico e-mail Posta Elettronica 6
Ailinen Invio automatico file PHP 6
H Invio automatico di e-mail tramite db Classic ASP 1
R Invio dai tessera sanitaria PHP 1
M telecamera Foscam - mancato invio mail ad account gmail IP Cam e Videosorveglianza 0
G Invio di più valori con la stessa checkbox PHP 4
M Invio dati database via email php PHP 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
M Memorizzare i dati nei campi prima dell'invio al db PHP 4
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
M Invio di email PHP 0
A invio massivo dati a file php Javascript 4
P Funzione jQuery Ajax invio file a php jQuery 1
Cosina Upload multiplo con invio allegati per email PHP 0
C Mailchimp ritardo invio newsletter subscribers Email Marketing 1
G creazione menu a tendina e invio a pagina php PHP 1
R Invio mail con allegati multipli PHP 0
R Invio mail con allegati da directory PHP 1
Cosina Invio messaggio a mailing list su file txt PHP 9
W Invio Dati ad un altra pagina Classic ASP 1
S Invio email da form PHP 8
psicomia Server e url per invio di file Server Dedicati e VPS 3
max1974 Invio email PHP 12
Daniele_Carrara Problema timeout - invio mail PHP 7
U PHP bottone per invio mail o ritorno al form PHP 15
G Invio mail con php da dati prelevati da un database PHP 9
L [PHP] Invio Immagini PHP 1
AC1 [PHP] Invio Mail PHP 18
I [PHP] Invio sms multipli PHP 4
S Consigli per invio di comunicati stampa Discussioni Varie 2
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
ANDREA20 [PHP] Modulo email invio PHP 5
Shyson [PHP] Codice iscrizione e invio avviso nuovi articoli PHP 3
Tommy03 Errore invio email con PHP PHP 1
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
A [PHP] errore 404 e invio mai path pagina con link interrotto PHP 2
A [PHP] Invio messaggio a tutti gli iscritti PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1

Discussioni simili