Ich habe Startdatum und Enddatum in meiner Tabelle wie unten.PHP-Code zum Senden von E-Mails mit der Funktion find in Forloop
startdate = 2016-01-01
Enddatum = 2016-06-20
Jetzt möchte ich E-Mail automatisch ab Enddatum vor 1 Monat schicken.
alles funktioniert gut ... E-Mail auch ..
Aber mein Problem ist, sendet i E-Mail an mehrere Benutzer senden möchten, wenn es zwei Zeilen in der Tabelle mit meinen Bedingungen passen dann E-Mail an beide gegangen ist die Benutzer.
Aber mein Code nur E-Mail nur an einzelne Benutzer..nicht alle Benutzer senden. Ich möchte E-Mail an alle Benutzer eins nach dem anderen gehen.
public function certificateExpired()
{
$this->autoRender = False;
$this->loadModel('Certificate');
$data = $this->Certificate->find("all", array(
'recursive' => -1, // should be used with joins
'fields' => array('User.*', 'Certificate.*'),
'joins' => array(
array(
'table' => 'users',
'alias' => 'User',
'type' => 'LEFT',
'conditions' => array('User.id = Certificate.user_id')
)
),
'conditions' => array('Certificate.is_expirable' => 1,'Certificate.status' => 1)
));
foreach ($data as $row) {
$currentdate = date("Y-m-d");
$date = $row['Certificate']['end_date'];
$newdate = strtotime($date .' -1 months');
$enddate = date('Y-m-d', $newdate);
if ($currentdate >= $enddate) {
//For sending email
$data['email'] = $row['User']['email'];
$data['name'] = $row['User']['name'];
$data['document_name'] = $row['Certificate']['name'];
$data['templateid'] = 19;
$send_mail = $this->EmailFunctions->certificateExpiredTemplate($data);
if ($send_mail) {
$this->redirect(array('controller' => 'Dashboards', 'action' => 'shipperDashboard'));
}
}
}
}
Setzen Sie Ihre Weiterleitung außerhalb der foreach Schleife –
Setzen Sie einfach die '$ this-> Umleitung (Array ('Controller' => 'Dashboards', 'Aktion' => 'shipperDashboard'));' außerhalb der foreach Schleife –
in Ordnung ..Ich teste ... –