Avatar billede jjdk Nybegynder
02. januar 2006 - 22:42 Der er 8 kommentarer og
1 løsning

Send email på bestemt dato

Hej. Jeg er ved at lave et huskesystem, der sender emails på bestemte datoer.
Jeg har i MySql oprettet nogle poster. Der er 4 felter: dato, email, emne, tekst. Tanken er, at der tjekkes hver dag, om der er en post med dato = d.d. I tilfælde heraf, sendes en email til postens emailadresse med postens emne og tekst.
Men jeg er på bar bund mht. PHP koderne. Mon er der en venlig sjæl? Jeg opretter bare posterne direkte i MySql. Udbyder tilbyder i øvrigt, at "køre" filen hver dag. ALternativt kan jeg lægge koden inde i hjemmesidens index-fil, da der er hits hver dag.
Avatar billede jaw Nybegynder
02. januar 2006 - 22:47 #1
Hvis dato-feltet er DATE-typen, så kunne det være:

$query = mysql_query("SELECT * FROM tabelnavn WHERE datofelt = NOW()");
while($row = mysql_fetch_assoc($query)) {
  mail($row['email'], $row['emne'], $row['tekst']);
}
Avatar billede jaw Nybegynder
02. januar 2006 - 22:48 #2
Nok egentlig nærmere:
$query = mysql_query("SELECT * FROM tabelnavn WHERE datofelt = CURDATE()");
Avatar billede jjdk Nybegynder
02. januar 2006 - 23:03 #3
Hurra - det virker allerede.
Men alligelvel 2 følge problemer:
1. Når jeg modtager emailen, kan jeg se, at emailen er sendt fra "server@legaard" (Elitehost). Kan jeg ændre denne tekst?
2. Hvis jeg sætter koden ind i hovedfilen for hjemmesiden, vil emailen blive sendt hver gang der er et hit. Hvis jeg opretter et felt mere i tabellen, kan jeg bruge den som en slags markering (feltet kalder jeg "tjek". Altså inden emailen sendes, tjekkes feltet, og hvis ingen indhold, så sendes emailen. Når emailen er sendt, sættes data i feltet, så der ikke sendes igen, når der igen er hit.
Vil du hjælpe med koden til dette også?
Avatar billede jaw Nybegynder
03. januar 2006 - 00:16 #4
1'eren kan du løse:
mail($row['email'], $row['emne'], $row['tekst'], 'From: din@adresse.dk');

Angående 2'eren, så synes jeg helt sikkert du skal tage imod din host's tilbud om at køre det som et cron-job én gang om dagen. Ellers skal du have et felt, som du f.eks. opdaterer således:
mysql_query("UPDATE tabelnavn SET mail_sendt = 'ja' WHERE datofelt = CURDATE()");
og så dit udtræk:
$query = mysql_query("SELECT * FROM tabelnavn WHERE datofelt = CURDATE() AND mail_sendt = 'nej'");
Avatar billede jjdk Nybegynder
03. januar 2006 - 10:20 #5
Jamen - det funger bare.
Sender du et svar.
Avatar billede jjdk Nybegynder
03. januar 2006 - 10:21 #6
Og tusind tak i øvrigt.
Avatar billede jaw Nybegynder
03. januar 2006 - 12:37 #7
Skide godt - selv tak :)
Avatar billede jjdk Nybegynder
03. januar 2006 - 12:56 #8
Hej jaw.
Vil du ved ligehed tjekke min sidste kommentar i dette spørgsmål:
http://exp.dk/spm/676051
Avatar billede jaw Nybegynder
03. januar 2006 - 13:12 #9
http://www.eksperten.dk/spm/675978 <- det er her du mener, ik?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester