Script, dass Mail versickt, wenn dieses gewünscht ist...
- 
				Anonymous
 
Script, dass Mail versickt, wenn dieses gewünscht ist...
Hi und Hallo,
ich suche ein Script, dass eine Datenbankabfrage macht und zu einem gewünschten Termin eine Mail verschickt. Das kann man ja ohne Probleme auch mit einem Cronjob machen, aber ich hätte es gerne folgenden maßen:
Ein Cronjob soll das Script mail.php4 jeden Tag aufrufen.
Dieses Script soll dann eine Datenbankabfrage machen und fals erforderlich eine Mail verschicken.
Ob es erforderlich ist, soll dann in der Datenbank stehen (Datum).
Beispiel:
Datum /Message /Mail
24.08.2003 /Hallo, bitte einkaufen! /astrid@wmws.de
So, wenn nun das Script aufgerufen wird und es ist der 24.08.2003 so soll die Mail mit der Message an astrid@wmws.de geschickt werden.
Hat jemand sowas vielleicht schon mal gemacht oder kann mir so ein Script mal posten?
Vielen vielen Dank und noch einen schönen Sonntag;
Astrid
			
			
									
						
										
						ich suche ein Script, dass eine Datenbankabfrage macht und zu einem gewünschten Termin eine Mail verschickt. Das kann man ja ohne Probleme auch mit einem Cronjob machen, aber ich hätte es gerne folgenden maßen:
Ein Cronjob soll das Script mail.php4 jeden Tag aufrufen.
Dieses Script soll dann eine Datenbankabfrage machen und fals erforderlich eine Mail verschicken.
Ob es erforderlich ist, soll dann in der Datenbank stehen (Datum).
Beispiel:
Datum /Message /Mail
24.08.2003 /Hallo, bitte einkaufen! /astrid@wmws.de
So, wenn nun das Script aufgerufen wird und es ist der 24.08.2003 so soll die Mail mit der Message an astrid@wmws.de geschickt werden.
Hat jemand sowas vielleicht schon mal gemacht oder kann mir so ein Script mal posten?
Vielen vielen Dank und noch einen schönen Sonntag;
Astrid
- 
				darkspirit
 - Posts: 553
 - Joined: 2002-10-05 16:39
 - Location: D'dorf
 - Contact:
 
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Das kannst du denke ich auch selbst ;)
Schau dir mal die Funktion "date" von PHP an. Am besten speicherst du das gewünschte Datum zum Verschicken der Mail als Timestamp in der Datenbank, den du zu jedem beliebigen Datum mit genannter Funktion erzeugen kannst.
Bei der Abfrage selbst vergleichst du einen aktuellen Timestamp (mit "time()") mit dem gespeicherten Wert. Wenn der aktuelle Timestamp größer ist als der in der Datenbank, schicke die Mail ab.. Natürlich muss entweder der Datenbankeintrag dann gelöscht werden oder ein neues Datum eingetragen werden, sonst wird die Mail einen Tag später wieder verschickt ;)
			
			
									
						
										
						Schau dir mal die Funktion "date" von PHP an. Am besten speicherst du das gewünschte Datum zum Verschicken der Mail als Timestamp in der Datenbank, den du zu jedem beliebigen Datum mit genannter Funktion erzeugen kannst.
Bei der Abfrage selbst vergleichst du einen aktuellen Timestamp (mit "time()") mit dem gespeicherten Wert. Wenn der aktuelle Timestamp größer ist als der in der Datenbank, schicke die Mail ab.. Natürlich muss entweder der Datenbankeintrag dann gelöscht werden oder ein neues Datum eingetragen werden, sonst wird die Mail einen Tag später wieder verschickt ;)
- 
				Anonymous
 
...
Schönen guten Abend,
erst mal vielen Dank für die Hilfestellung, aber leider muß ich dich enttäuschen.
Wenn ich sowas selber hinbekommen würde, würde ich mein Problem ja nicht posten.
Ich habe wirklich nicht so viel Ahnung von PHP, da ich mich bis jetzt nur mit anderen Scriptsprachen beschäftigt habe.
Schönen Abend noch;
Astrid
			
			
									
						
										
						erst mal vielen Dank für die Hilfestellung, aber leider muß ich dich enttäuschen.
Wenn ich sowas selber hinbekommen würde, würde ich mein Problem ja nicht posten.
Ich habe wirklich nicht so viel Ahnung von PHP, da ich mich bis jetzt nur mit anderen Scriptsprachen beschäftigt habe.
Schönen Abend noch;
Astrid
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Hallo Astrid,
kannst du das dann nicht mit den anderen Skriptsprachen realisieren, die du beherrscht?
bye
arty
			
			
									
						
										
						kannst du das dann nicht mit den anderen Skriptsprachen realisieren, die du beherrscht?
bye
arty
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Code: Select all
$link = mysql_connect("localhost","user","pw");
$link = mysql_select_db("db_name");
$pre_sql_userdaten = mysql_query("SELECT user,pw FROM die_tabelle");
while($out_sql_userdaten = mysql_fetch_array($pre_sql_userdaten))
 {
  system("passwd ".$out_sql_userdaten["user"]." ".$out_sql_userdaten["pw"]);
 }
echo "Fertig :) Pw's sind drin :)";Sollte passen, wenn nit verbessert mich, war nur so kurz daher getippt :)
Musst das ganze dann noch mit nem Cron auf rufen...
Code: Select all
* */1 * * * root /pfad/zur/php/bin/php /pfad/zum/script.phpPepe
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Hi 
ich hab mich mal drangesetzt und sowas geschrieben wenn
du noch Interesse hast dann schreib mir ne PM.
Giffi
			
			
									
						
										
						ich hab mich mal drangesetzt und sowas geschrieben wenn
du noch Interesse hast dann schreib mir ne PM.
Giffi
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Sorry aber was hat das mit dem Thema zu tun ??[NIX]Pepe wrote:Code: Select all
$link = mysql_connect("localhost","user","pw"); $link = mysql_select_db("db_name"); $pre_sql_userdaten = mysql_query("SELECT user,pw FROM die_tabelle"); while($out_sql_userdaten = mysql_fetch_array($pre_sql_userdaten)) { system("passwd ".$out_sql_userdaten["user"]." ".$out_sql_userdaten["pw"]); } echo "Fertig :) Pw's sind drin :)";
Giffi
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Hier mal mein Lösungsvorschlag:
Hiermit die passende Tabelle erstellen (phpMyAdmin oder MySql-Konsole)
"test" kann natürlich ersetzt werden.
Dann einfach die Daten einfügen (time als Unix Timestamp)
und "status" leer lassen
Hier das PHP-Script
sollte eigentlich selbsterklärend sein ;-)
Giffi
			
			
									
						
										
						Hiermit die passende Tabelle erstellen (phpMyAdmin oder MySql-Konsole)
"test" kann natürlich ersetzt werden.
Dann einfach die Daten einfügen (time als Unix Timestamp)
und "status" leer lassen
Code: Select all
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`time` int(14) default NULL,
`mail` text NOT NULL,
`text` text NOT NULL,
`status` text NOT NULL,
PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
sollte eigentlich selbsterklärend sein ;-)
Code: Select all
<?
$database= "";          //Datenbankname
$sqlhost= "localhost";     //mySQL Hostname (meistens "LOCALHOST")
$sqluser= "";            //mySQL Username
$sqlpass= "";           //mySQL Passwort
// Tabellennamen:
$tab1		="test";     //
$serverid  = @mysql_connect  ( $sqlhost, $sqluser, $sqlpass) or
             die ("Verbindung zur Datenbank nicht möglich !");
if (!mysql_select_db( $database))
  echo mysql_error($serverid);
$akt_time=time();
$sqlbefehl= "Select id, time, text, mail, status FROM $tab1";
		$ergebnis  = mysql_query($sqlbefehl, $serverid);
		echo mysql_error($serverid);
		while ( $anzeige = mysql_fetch_array ($ergebnis)) {
			echo $anzeige[time];
			echo "<br>";
			echo $akt_time;
		if ($anzeige[status] != "versendet" and $akt_time > $anzeige[time])
		{
		
		// Wenn Status = nicht versendet und aktuelle Zeit > Zeit aus der Datenbank ----> Mail verschicken
		
		$message="Datum:".date("d.m.Y",$anzeige[time])."   ".date("H:i:s",$anzeige[time])."n".$anzeige[text];
			mail($anzeige[mail], "Subject", $message,
     			"From: deine@mail-adressenX-Mailer: PHP/" . phpversion());
     		
     		//Status in der Datenbank auf versendet setzen, um einen doppelten Versand zu vermeiden
     		
     		$status="versendet";
     		$serverid  = mysql_connect  ( $sqlhost, $sqluser, $sqlpass);
  		echo mysql_error($serverid);
   		if (!mysql_select_db( $database))
      		echo mysql_error($serverid);
	  	$sqlbefehl2  =  "UPDATE $tab1 SET status='$status'
	 	WHERE id = $anzeige[id]";
   		if (!$ergebnis2  = mysql_query($sqlbefehl2, $serverid))
      		echo mysql_error($serverid);
      		
      		}
      		}
      		
      		?>
Giffi
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
shit ^^
hab war erst in dem thread mit dem Pw für die User änder und der db dazwischen mit confixx ^^ und hab mich dann verklickt und unten nur noch gelesen kann mir jemand mal was proggen, sry ^^
vielleicht kann das ja nen admin rüber schieben odda so *duck*
MfG
Pepe
			
			
									
						
										
						hab war erst in dem thread mit dem Pw für die User änder und der db dazwischen mit confixx ^^ und hab mich dann verklickt und unten nur noch gelesen kann mir jemand mal was proggen, sry ^^
vielleicht kann das ja nen admin rüber schieben odda so *duck*
MfG
Pepe
- 
				Anonymous
 
...
Hi und Hallo,
erst einmal Danke giffi für dein Script!
Dazu habe ich noch mal eine Farge:
Wie soll ich den das Datum einspeichern? wenn ich das als UNIX TImestamp mache, habe ich ja nur eine Zahlencode???
Sorry, aber mit sowas kenne ich mich halt noch nicht aus!
Vielen Dank!
MfG;
Astrid
			
			
									
						
										
						erst einmal Danke giffi für dein Script!
Dazu habe ich noch mal eine Farge:
Wie soll ich den das Datum einspeichern? wenn ich das als UNIX TImestamp mache, habe ich ja nur eine Zahlencode???
Sorry, aber mit sowas kenne ich mich halt noch nicht aus!
Vielen Dank!
MfG;
Astrid
Re: Script, dass Mail versickt, wenn dieses gewünscht ist...
Hi 
gibst du die Daten wie Text Mail usw von Hand in die Datenbank ein oder
lässt du das auch durch ein Script machen??
Dann wärs verhältnismässig einfach:
Den code als test2.php abspeichern (oder als was du willst und dann bei
<FORM ACTION="test2.php" ändern)
und im Browser aufrufen
Giffi
			
			
									
						
										
						gibst du die Daten wie Text Mail usw von Hand in die Datenbank ein oder
lässt du das auch durch ein Script machen??
Dann wärs verhältnismässig einfach:
Den code als test2.php abspeichern (oder als was du willst und dann bei
<FORM ACTION="test2.php" ändern)
und im Browser aufrufen
Code: Select all
<?
$database= "";          //Datenbankname
$sqlhost= "localhost";     //mySQL Hostname (meistens "LOCALHOST")
$sqluser= "";            //mySQL Username
$sqlpass= "";           //mySQL Passwort
// Tabellennamen:
$tab1		="test";     //
$serverid  = @mysql_connect  ( $sqlhost, $sqluser, $sqlpass) or
             die ("Verbindung zur Datenbank nicht möglich !");
if (!mysql_select_db( $database))
  echo mysql_error($serverid);
?>
<FORM ACTION="test2.php" METHOD="POST" enctype="multipart/form-data"  name="Erinnerung">
	<table width=100% border=1 cellspacing=0 cellpadding=0>
	<tr>
		<td colspan="2"><center>Hier die Ã?berschrift</td>
		<br>
	</tr>
	<tr>
		<td>Mail:</td><br>
		<td><input name="mail" type="text" value="" size="30" maxlength="30"></td><br>
	</tr>
	<tr>
		<td>Datum:</td>
		<td>Tag:<input name="tag" type="text" value="" size="2" maxlength="2"> 
		    Monat:<input name="mon" type="text" value="" size="2" maxlength="2"> 
		    Jahr:<input name="year" type="text" value="" size="2" maxlength="2"> 
		    Stunde:<input name="stunde" type="text" value="" size="2" maxlength="2">
		    Minute:<input name="min" type="text" value="" size="2" maxlength="2">
		    Sekunde:<input name="sek" type="text" value="" size="2" maxlength="2"></td>
	</tr>
	<tr>
		<td>Hier dein Text</td>
		<td><textarea rows="10" style="width:300" name="text" cols="30"></textarea></td>
	</tr>
	<tr>
		<td colspan="2">
			<center><input name="eintr" type="submit" value="Eintragen">  
		</td>
		</tr>
		</table>
</form>
<?
if ($eintr == "Eintragen") {
echo "<table width=100% border=0 cellspacing=0 cellpadding=0><tr><td>";
//Zeit in Unix-Timestamp umwandeln
$zeit= mktime($stunde,$min,$sek,$mon,$tag,$year);
$serverid  = mysql_connect  ( $sqlhost, $sqluser, $sqlpass);
  echo mysql_error($serverid);
   if (!mysql_select_db( $database))
      echo mysql_error($serverid);
	  
	 $sqlbefehl  =  "INSERT INTO $tab1
                (time,mail,text)
                VALUES ('$zeit', '$mail', '$text')";
   if (!$ergebnis  = mysql_query($sqlbefehl, $serverid)){
      echo mysql_error($serverid);
	 mysql_close($serverid);}
	 
	 else {echo "Eintrag erfolgreich";
          echo "</td> </tr> </table>";
	}
}
?>