Slim框架邮件功能逐次重复内容
Slim framework email function repeats content successively
我有以下功能,它应该从数据库中获取一堆广告,并向所有广告已过期的人发送电子邮件。它几乎可以工作,但还不够。
public function rerunExpiredMail()
{
// set base url
$base_url = BASE_URL;
// message variable starts off empty
$message = '';
// get ad information
$j = new Ads();
$ad = $j->showAdDetails();
// find ads that were created 61 days ago
$ads = R::findAll('ads',
" DATE_FORMAT(created, '%Y%m%d') = (CURDATE() - INTERVAL ". EXPIRE_JOBS ." +1 DAY)",
array(':email'=>$ad->email, ':id'=>$ad->id));
// loop found ads and send out email
foreach ($ads as $ad) {
$token = accessToken($ad->id);
$link = BASE_URL . "ads/{$ad->id}/rerun/{$token}";
$subject = "Your advert has expired. Rerun it now!";
$message .= "<p>Hi there! Your advert, <strong>{$ad->title}</strong>, has just expired on {$this->app_name}!</p>";
$message .= "<p>You can rerun your advert for another 60 days (free) by simply clicking the link below:</p>";
$message .= "<p><a href={$link}>Click to rerun your advert now</a></p>";
if ($this->sendNotification($subject, $message, $ad->email)) {
//return true;
}
//return false;
}
}
上面的代码有这样的效果:电子邮件被发送给各方,但第一封电子邮件是正确的,第二封电子邮件将包含第一封电子邮件的内容和第二封电子邮件的内容,第三封电子邮件将包含第一封、第二封和第三封邮件的内容,依次类推(重复$message中保存的内容)。
如果我取消注释 return true;
和 return false;
,则只会发送列表中的第一封电子邮件。
请帮忙!
从第一个 $message 分配中删除点:
$message = "<p>Hi there! Your advert, <strong>{$ad->title}</strong>, has just `enter code here`expired on {$this->app_name}!</p>";
我有以下功能,它应该从数据库中获取一堆广告,并向所有广告已过期的人发送电子邮件。它几乎可以工作,但还不够。
public function rerunExpiredMail()
{
// set base url
$base_url = BASE_URL;
// message variable starts off empty
$message = '';
// get ad information
$j = new Ads();
$ad = $j->showAdDetails();
// find ads that were created 61 days ago
$ads = R::findAll('ads',
" DATE_FORMAT(created, '%Y%m%d') = (CURDATE() - INTERVAL ". EXPIRE_JOBS ." +1 DAY)",
array(':email'=>$ad->email, ':id'=>$ad->id));
// loop found ads and send out email
foreach ($ads as $ad) {
$token = accessToken($ad->id);
$link = BASE_URL . "ads/{$ad->id}/rerun/{$token}";
$subject = "Your advert has expired. Rerun it now!";
$message .= "<p>Hi there! Your advert, <strong>{$ad->title}</strong>, has just expired on {$this->app_name}!</p>";
$message .= "<p>You can rerun your advert for another 60 days (free) by simply clicking the link below:</p>";
$message .= "<p><a href={$link}>Click to rerun your advert now</a></p>";
if ($this->sendNotification($subject, $message, $ad->email)) {
//return true;
}
//return false;
}
}
上面的代码有这样的效果:电子邮件被发送给各方,但第一封电子邮件是正确的,第二封电子邮件将包含第一封电子邮件的内容和第二封电子邮件的内容,第三封电子邮件将包含第一封、第二封和第三封邮件的内容,依次类推(重复$message中保存的内容)。
如果我取消注释 return true;
和 return false;
,则只会发送列表中的第一封电子邮件。
请帮忙!
从第一个 $message 分配中删除点:
$message = "<p>Hi there! Your advert, <strong>{$ad->title}</strong>, has just `enter code here`expired on {$this->app_name}!</p>";