【发布时间】:2016-09-28 06:06:05
【问题描述】:
我正在使用这个代码通过一个用 Cakephp 编程的网站发送电子邮件。
$email = new CakeEmail('smtp');
$email->to(array($user['email'] => $user['first_name']." ".$user['last_name']));
$email->emailFormat('both');
$email->from(array('info@domain.nl' => 'Domain'));
$email->subject('Registratie domain.nl');
$email->template('registration_mail');
$email->viewVars(array('user' => $user));
$email->send();
如何在系统发送这封电子邮件前设置延迟 5 分钟? 在 cake php: app\config\email.php 我找到了用于发送这封电子邮件的设置。我将超时更改为 300,但邮件在注册后
任何建议表示赞赏。
【问题讨论】:
-
为什么不用
sleep(300)? -
@PedroLobito 如果用户在触发此睡眠功能后离开当前页面,则永远不会发送电子邮件,这不是 OP 希望我假设的。
-
我不这么认为,以防万一设置
ignore_user_abort(1) -
我猜你想安排电子邮件稍后送达,而不是引入延迟本身。我不确定 CakePHP 是否本机提供该功能,但使用
scheduled_emails表、send_at列和 cron 作业自己做应该不难。 -
“超时”并不意味着延迟 - 它是在放弃连接尝试之前允许连接到(电子邮件)服务器的时间。问题中没有代码尝试执行您要求的操作。