Mails zu einer bestimmten Zeit versenden

mlu

Grünschnabel
Guten Abend,

ich habe folgendes vor:

Ich will zum neuen Jahr, ohne zutun, an mehrere Personen eine E-Mail verschicken (Die Personen sind nicht in einer Datenbank hinterlegt). Habt ihr einen Vorschlag, wie man das realisieren könnte? Die E-Mail soll genau um 0:00 Uhr verschickt werden evtl. mit einer Hintergrundgrafik die als .jpg Datei auf dem Webspace hinterlegt ist.

Der Aktuelle Code von meinem Script ist folgender:

Code:
 <?php
	if ($_SERVER['REQUEST_METHOD'] == 'GET')
	{
		$html_content = '';
		$html_content .= '<form method="post">';
		$html_content .= 'Empfänger:<br /><input type="text" name="empfaenger" size="50" />'."\n<br /><br />";
		$html_content .= 'Absender:<br /><input type="text" name="absender" size="50" />'."\n<br /><br />";
		$html_content .= 'Betreff:<br /><input type="text" name="betreff" size="50" />'."\n<br /><br />";
		$html_content .= 'Text:<br /><textarea name="text" cols="50" rows="10"></textarea>'."\n<br /><br />";
		$html_content .= 'HTML Email: <input type="checkbox" name="html" checked="checked" />'."\n<br />";
		$html_content .= 'Bitte beachten Sie: Wenn Sie die Email als HTML Email versenden, müssen sie alles HTML konform schreiben, z.B. werden Zeilenumbrüche in der Email nicht als solche angezeigt, außer Sie benutzen als Zeilenumbruch &lt;br /&gt;.<br /><br />';
		$html_content .= '<input type="text" name="anzahl" size="2" value="1" /> mal senden'."\n<br /><br />";
		$html_content .= '<input type="submit" value="Abschicken" />';
		$html_content .= '</form>';
		echo $html_content;
	}
	else
	{
		$empfaenger = $_POST['empfaenger'];
		$absender = $_POST['absender'];
		$betreff = $_POST['betreff'];
		$text = $_POST['text'];
		$html = $_POST['html'];
		$anzahl = $_POST['anzahl'];
		
		$headers = 'From: '.$absender;
		if ($html == 'on')
			$headers .= "\r\nContent-Type: text/html";
		
		$verschickt = 0;
		
		for ($i = 0; $i < $anzahl; $i++)
		{
			if (mail($empfaenger, $betreff, $text, $headers))
				$verschickt++;
		}
		if ($verschickt > 0)
			echo "$verschickt Email(s) erfolgreich verschickt.";
		else
			echo 'Fehler! <a href="javascript:history.back();">Zurück</a>';
	}
?>


MfG

Matthias
 
Zuletzt bearbeitet:
Die einfachste Lösung dafür ist ein Cronjob, also ein Programm, das vom Server selbst gestartet wird. Du schreibst es genauso, als wenn du es selbst startest und packst nur eine kleine Zeile voran, wo der Server das PHP findet.

Such hier mal nach Cronjob, da solltest du genügend Beispiele finden. Du kannst es auch über den Cronjob Service von selfphp/ abwickeln lassen.
 
Zurück