gpt4 book ai didi

php - 基于unix时间戳的自动化电子邮件的最佳解决方案

转载 作者:行者123 更新时间:2023-11-29 14:57:27 25 4
gpt4 key购买 nike

表中有 6 个字段,称为 eblasts。 ID、消息、drop_dead、警告1、警告2 和 due_date。 drop_dead、 due_date、 warning1 和 warning2 都是 unix 时间戳。如果那个时间已经过去了,我需要发送一封电子邮件。因此,我想从数据库中查找 drop_dead 日期(这将是发送电子邮件的最晚时间),看看它与当前时间相比如何。如果它过去了 drop_dead 那么什么也不做。如果它在 drop_dead 之前,那么它需要发送一封电子邮件。

在那封电子邮件中,我需要交叉引用另外 2 个表格(联系人和公司)。联系人通过联系人表中的 company_id 列与每个公司关联(1 个公司可以有多个联系人)。我还有另一个表,其中包含他们是否已响应(eblast_id、company_id、时间戳)。只有那些没有回复的人才需要收到电子邮件。

有道理吗?关于如何进行这项工作或我应该从哪里开始有什么想法吗?我的大脑因试图弄清楚这一点而崩溃。

这就是我到目前为止所做的......只是帮助将各个部分组合在一起/填补缺失的地方。

$timestamp = time();

$drop_dead = mysql_query("SELECT drop_dead, ID, warning_1 FROM eblasts") or die(mysql_error());

while ($row = mysql_fetch_array($drop_dead, MYSQL_NUM)) {
$last_time[$row[1]] = $row[0];
$last_time[$row[1]] = $row[2];
};

print_r($last_time);

foreach($last_time as $key => $value) {
if($timestamp < $value){
$final_email[] = $key;
};
};

if(){
$find_franchise = mysql_query("SELECT * FROM franchisees") or die(mysql_error());
while ($row = mysql_fetch_array($find_franchise, MYSQL_NUM)) {
$franchise_id[] = $row[0];
}
$find_responded = mysql_query("SELECT franchise_id FROM participation");
while ($row = mysql_fetch_array($find_responded, MYSQL_NUM)) {
$part_franchise[] = $row[0];
}
$to_email_franchise_id = array_diff($franchise_id, $part_franchise);
}

提前致谢。

-亚当

最佳答案

看看 UNIX_TIMESTAMP MySQL 函数:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_unix-timestamp

简而言之:

SELECT * FROM `eblasts` WHERE `drop_dead` < UNIX_TIMESTAMP( NOW() );

这种方法的缺点是每次查询都会重新评估时间戳,这会导致大量无用的系统调用。

这会更有效:

SET @cutoff = UNIX_TIMESTAMP( NOW() );
SELECT * FROM `eblasts` WHERE `drop_dead` < @cutoff;

但是,如果您的原始 Unix 时间戳(数据库中的时间戳)直接来自 PHP,我建议您使用 PHP 的 time() 函数来计算截止时间,特别是如果您的 MySQL服务器不在同一台物理机器上运行。这样,如果 MySQL 服务器日期/时间(或时区)与您的 Web 服务器的日期/时间(或时区)不同,您就可以避免太晚发送消息。

关于php - 基于unix时间戳的自动化电子邮件的最佳解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com