【问题标题】:Set a delay for sending emails (php mail or via cake php)设置发送电子邮件的延迟(php 邮件或通过 cake php)
【发布时间】: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 作业自己做应该不难。
  • “超时”并不意味着延迟 - 它是在放弃连接尝试之前允许连接到(电子邮件)服务器的时间。问题中没有代码尝试执行您要求的操作。

标签: php email cakephp


【解决方案1】:

看看dereuromark的cakephp-queue插件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 2010-11-22
    • 2010-10-09
    相关资源
    最近更新 更多