我正在编写一个小型php-cli脚本,它将循环播放我的个人收件箱,然后通过网关向我发送短信。未读电子邮件通知程序,最实用的方法
我的问题是:
如通过cron有剧本推出每10分钟,如果有一个电子邮件坐在我的收件箱是不是下一个剧本发射前阅读,然后我会收到2条短信。
任何一个(伪代码都可以)都知道php5中的最佳做法是确保只发送一条短信吗?
我目前在学习的是将消息ID存储在sqlite数据库中,并标记一个字段是否发送了短信 - 但是想知道是否有更简单的方法?
我正在编写一个小型php-cli脚本,它将循环播放我的个人收件箱,然后通过网关向我发送短信。未读电子邮件通知程序,最实用的方法
我的问题是:
如通过cron有剧本推出每10分钟,如果有一个电子邮件坐在我的收件箱是不是下一个剧本发射前阅读,然后我会收到2条短信。
任何一个(伪代码都可以)都知道php5中的最佳做法是确保只发送一条短信吗?
我目前在学习的是将消息ID存储在sqlite数据库中,并标记一个字段是否发送了短信 - 但是想知道是否有更简单的方法?
经过几个小时的睡眠(从上午4点看澳大利亚vs德国,世界杯)我提出了一个更好的方法,稍微复杂一些,然后使用sqlite数据库,但有一些额外的好处。
我使用imap_mail将短信发送到网关,并将短信通知的message_id存储为传出电子邮件中的自定义“X-Relationship:”标题,然后将该邮件复制到我的已发送邮件。
然后,通知程序只需扫描我的已发送邮件,以查看已发送邮件中是否存在X-Relationship标头。
这是什么我有一个记录(发送项目)的电子邮件发送到SMS网关 - 似乎运作良好。
什么我目前学习对被存储信息ID在一个SQLite数据库和标记字段短信是否已发送或不
这是最简单直接的方法可以将做这个。无论存储方式如何,您都必须在某处保留已看到但未读取的消息ID列表。也可以在一个简单的,独立的SQLite文件中。我想你可能只是将它们保存在一个平面文件的列表中。这是根据定义更简单,但它真的更容易?
我没有看到你离开而没有坚持某些地方。
东西应该是不断增加的性质 - 消息ID可能是肯定的时间戳。只要你可以看看它,并确定是否有新消息到达。
如果您希望与SMS通信的是有未读消息,我不认为需要保存更多的单个ID或时间戳。
你不应该存储任何东西。如果我的理解正确,只要您的程序在最近10分钟内收到新的未读电子邮件时向您发送消息。在那种情况下,你可以不做以下事情吗?
foreach($inbox[] as $message){
if(($message.isUnread) && ($message.receiveTime > NOW() - 10 minutes)){
$sendMessage = TRUE;
}
}
if($sendMessage){
sendMessage();
}
我不知道你如何能够访问数据,所以上述不太可能按原样使用。假设您可以通过阅读状态和日期来过滤收件箱的内容,但是,原则上不应该这样工作?