invio email programmato...

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
salve sono un novellino del webdesing in genere ma sopratutto di php e mi sto creando uno script che invia email in una determinata data in automatico, per fare ciò ho pensato di realizzare questo script in questo modo:

1 creare un form html che inserisca dei dati tipo email e una data di scadenza (data in formato mysql YYYY-MM-DD) e questo primo passo è stato risolto e gira tutto bene

2 creare lo script che controlli giornalmente ( utilizzo crontab ) i dati inseriti in questa tabella creata appositamente in un db mysql.

ecco nella creazione di questa seconda parte di script mi sono inceppato, ho realizzato tutto sino al punto del controllo della data, quindi ho usato questa ipotesi avendo creato una variabile e avedo detto che questa variabile è uguale alla data odierna ho creato una query al db che interroga sta tabella e ho detto nella query utilizzando il paramentro SELECT seleziona email quando la data=$variabile, fino a qui penso di esserci riuscito il problema me lo pongo adesso so che perinviare email si usa la funzione mail ma come faccio a dire prendi da quella tabella il campo email quando si verifica questa condizione ben precisa e invia questo messaggio?

spero di essere stato chiaro, posto parte del codice da me creato sperando di avere aiuto da qualcuno di voi....


<?php

$link = mysql_connect('host', 'user', 'pass');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db('database', $link);
if (!$db_selected) {
die ("Errore nella selezione del database: " . mysql_error());
}

$var = (date("y-m-d"));

$query = "SELECT * FROM ". tabella ." email WHERE data=$var";

$result = mysql_query($query);

if (!$result) {

die("Errore nella query $query: " . mysql_error());


sino a qui gira, ora non so come continuare vi posto cosa ho provato senza avere il risultato ottenuto cioè ricevere la mail lanciando lo script perchè la cosa che mi risulta difficile e far inserire il destinatario dell'email prendendo l'indirizzo dalla tabella mysql in quella condizione ben precisa...ovviamente il tutto è continuanto

} else {


$headers = "Da: Esempio <[email protected]>\r\n";
while (list($destinatario) = mysql_fetch_row($query))
$oggetto ="prova di email";
$info="questa è una prova di email generata automaticamente";
mail ($destinatario, $oggetto, $info, $headers);

echo 'email inviata correttamente<br><br><a href="LINK">Torna alla HomePage</a> ';

}


?>

spero di non avere scritto assai baggianate e che qualcuno mi sappia aiutare...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Tutto sommato il tuo script è molto pulito, e migliore di molti altri che ho visto, nonostante tu sia un neofita. Comunque il problema si può risolvere con un ciclo while. Non ho idea di come sia strutturata la tabella, ma devi fare una cosa del genere:
PHP:
while($row = mysql_fetch_assoc($result))
{
    /*
    adesso in $row hai un array che contiene per indici
    i nomi dei campi e per valori i relativi valori.
    a questo punto, dunque, dovresti mandare la e-mail
    */
}
 

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
grazie..

grazie per il complimento o almeno per me è un complimento.... cmq la tabella è strutturata cosi facendo è una comune tabella che ha come chiave primaria ID poi ci sono i seguenti campi utente email servizio e data tutti i campi sono VARCHAR 255 e solo la data è in formato date mysql ( yyy-mm-dd ) quindi devo sostituira nel mio vecchi codice while (list($destinatario) = mysql_fetch_row($query)) con while($row = mysql_fetch_assoc($result)) ovviamente da mettere al destinatario della email ovviamente tipo una cosa cosi:

$destinatario="while($row = mysql_fetch_assoc($result))"

grazie in anticipo...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Probabilmente non hai ben capito cosa intendevo. Devi fare così:
PHP:
$headers = "Da: Esempio <[email protected]>\r\n";
$oggetto = "prova di email";
$info = "questa è una prova di email generata automaticamente";

while($row = mysql_fetch_assoc($result))
	mail($row['email'], $oggetto, $info, $headers);
In questo modo invierà la stessa e-mail a tutti gli utenti di quel determinato giorno.
 

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
qualcosa non gira...purtroppo

<?php

$link = mysql_connect('host', 'user', 'pass');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db('database', $link);
if (!$db_selected) {
die ("Errore nella selezione del database: " . mysql_error());
}

$oggi = (date("y-m-d"));

$query = "SELECT * FROM ". tabella ." email WHERE scadenza=$oggi";

$result = mysql_query($query);

if (!$result) {

die("Errore nella query $query: " . mysql_error());

} else {

$headers = "Da: Esempio.com <[email protected]>\r\n";
$oggetto = "prova di email";
$info = "questa è una prova di email generata automaticamente";

while($row = mysql_fetch_assoc($result))
mail($row['email'], $oggetto, $info, $headers);

echo 'email inviata correttamente<br><br><a href="LINK">Torna alla HomePage</a> ';
}

?>

o avrò capito male quello che tu mi hai detto oppure sbaglio qualcosa ma non ricevo nessuna email dopo aver inserito tramite un form già creato e funzioante i dati nella apposita tabella mysql....grazie in anticipo.... dopo che riesco a risolvere la funziona principale dello script mi piacerebbe curarlo con dei controlli dei caratteri e aggiungendo un altea funzione ma penso non sia difficile ma una cosa alla volta...
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
41
Sanremo
Sicuramente c'è un problema in questa query:

"SELECT * FROM ". tabella ." email WHERE scadenza=$oggi";

tabella, se è una variabile come credo, deve essere scritta $tabella.
E poi "email" prima del WHERE che cosa dovrebbe rappresentare?
 

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
allora la query penso vada a buon fine poichè non mi da l'errore come ho scritto di fare, anche se secondo me qualcosa nella query non gira bene cmq tabella non è una variabile ma è il nome della tabella del db mysql che mi interessa interrogare... qui ho psotato tabella ma qeul tabella è sostituito con il nome reale della tabella mentre email è il nome della colonna che contiene le email e diciamo il mio intento era nella query quello di dire allo script seleziona l'email presente nel db nel campo email quando ( WHERE ) la scadenza ( altro campo presente nel db ) è uguale alla variabile $oggi penso la cosa sia semplice però fatto sta che non mi invia le email adesso provo con il ciclo while per far stampare e vediamo se va a buon fine...
 

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
finalmente tutto funziona...

signori grazie di tutto l'errore era nella query modificando la query come mi ha suggerito alessandro e lasciando tutto i lresto invariato lanciando lo script riconosce l'email e la invia...adesso completo lo script perchè ovviamente la emai lal ricevo da [email protected] e non voglio compaia kosi voglio cha appaia tipo un nome prestabilito da me come posso fare ciò pensavo a sendmail...
 

kOkA

Nuovo Utente
14 Nov 2010
9
0
0
Brindisi
www.goldenappleweb.com
headers infatti non gira... avevo pensato di usare mail con smtp cosi dovrei risolvere il problema...cmq un altra domanda, è possibile far partire l'email non il giorno stesso ma fare tipo 10 gg prima 5 prima e il giorno stesso? o è una cosa molto complessa...e poi è possibile mettere oltre al destinatario variaile con il ciclo while una email destinatario fissa oltre quella?
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Invio di email PHP 0
Cosina Upload multiplo con invio allegati per email PHP 0
S Invio email da form PHP 8
max1974 Invio email PHP 12
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
Tommy03 Errore invio email con PHP PHP 1
C [PHP] Problema Invio Email Elseif PHP 2
Tommy03 Invio email con PHP PHP 3
bubino8 [WordPress] Invio email da sito WordPress 2
A [PHP] Invio email quando viene visitata una pagina PHP 7
L Settaggio parametri per invio email Ip Cam Sricam IP Cam e Videosorveglianza 13
B MYSQL-INVIO EMAIL O MESSAGGIO AVVISO MySQL 0
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
ANDREA20 [PHP] Invio ordine via email PHP 14
P problemi invio email con phpmailer PHP 47
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
Monital Invio email con dati di una funzione JS PHP 1
A Invio Email alla connessione di un Client su Lan Reti LAN e Wireless 2
B Invio email multiple PHPMAILER PHP 5
asevenx problema invio email tramite form PHP 3
Y Invio email automatico database background Database 1
S creazione test con invio risposta a una email prescelta PHP 4
A invio email con immagine inline senza clips PHP 0
J Scritp invio email convalida indirizzo PHP 13
R invio email php con allegato PHP 1
P Problemi con phpmail ed invio email PHP 0
A invio email dove sbaglio PHP 1
Task Mc Problema form invio email da sito ç__ç PHP 4
Z Invio email PHP 6
J while dentro while per invio email blocchi PHP 0
L Aiuto per ultimazione form invio email PHP 3
T invio email Classic ASP 4
F Problema form invio email php PHP 3
F form invio email php PHP 5
N Invio email a blocchi PHP 9
A problema con l'invio della password tramite email PHP 23
P Eroore su invio email PHP 6
P Invio email e richiamo di una funzione PHP 11
V invio automatico email PHP 11
P Problema invio email da php PHP 9
E Invio email (era: phpmailer) PHP 52
S Invio Email Tramite Php PHP 2
M invio email con più di un allegato PHP 1
A php msql invio dati per email PHP 2

Discussioni simili