【问题标题】:How to send an email notification when a page is visited?访问页面时如何发送电子邮件通知?
【发布时间】:2011-05-16 17:41:08
【问题描述】:

有没有办法在访问某个页面时发送电子邮件通知?
(触发一封电子邮件,说明该页面已被查看)

即。用户来到这个页面:thank-you.php
页面加载后,电子邮件会自动发送给网站管理员。
然后,在发送此电子邮件触发器后,用户会立即被重定向到另一个页面。

编辑—— 我需要检查用户是否来自特定的域名或 URL。
这是为了避免漏洞利用或其他杂项。提交黑客。

有什么建议吗?

【问题讨论】:

  • 代码是否需要能够区分人类和机器人?您是只对唯一身份访问者感兴趣,还是希望每次页面被点击时都收到一封电子邮件?您是否需要实施某种阈值,以便在有人多次刷新页面时您不会被电子邮件淹没?
  • 是的,Pheonix,它应该检查一些东西。它需要检查它是否来自特定域。将其添加到问题中。

标签: php email notifications


【解决方案1】:

试试:

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('admin@example.com', 'My Subject', $message);

// Redirect
header('Location: anotherpage.php');
?>

【讨论】:

  • Richard,有没有办法在检查 URL 引用者是否满足某个域名的条件下添加这个?
  • @detonate 是的,这是可能的。您可以使用:if (isset($_SERVER['HTTP_REFERER']) &amp;&amp; preg_match('/^http:\\/\\/www\\.yourdomain.com\\//',$_SERVER['HTTP_REFERER']))。请记住,这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。有些杀毒软件会删除HTTP_REFERER。简而言之,它不能真正被信任。
  • 好的,感谢理查德的提示。您还有其他替代建议吗?
  • 根据目的,我建议每周邮寄一次。如果cron 不是替代方案,您可以使用脚本将访问附加到文本文件,然后在下周第一次访问时发送和删除文本文件。只需使用 file_get_contents() 从文本文件中加载 $message
  • 有趣,我从未使用过 cron... 这可能需要我太长时间来实施和部署。我希望我们可以通过电子邮件通知发送一些警报,而无需写入文本文件等。没想到这会变成这样的任务!
【解决方案2】:

是的,mail 函数。

但我认为您应该重新考虑这种设计 - 想象一下如果页面突然被成千上万的用户点击会发生什么 - 或者一个有问题的网络爬虫。日志文件或数据库更新更容易处理。

【讨论】:

  • 这是安德斯的事情之一。我需要检查用户是否来自特定域名。这足够安全吗?
  • 询问必须处理邮件的人,并问自己该人将如何处理邮件。它是否触发了手动例程也应该自动化?
  • 不,只是为了通知有人通过电子邮件访问了此页面。
  • 您应该在设计阶段计划邮件泛滥,并尝试以一种方式对邮件进行分组,以满足管理员对潜在数百万邮件场景的反馈请求。每(周|日|工作日|小时|15 分钟)合并报告怎么样?
  • 每日报告似乎是个好主意。电子邮件泛滥绝对是这里要考虑的事情。你会如何把所有这些放在一起安德斯? (检查域名推荐人并每天发送一次通知)。
【解决方案3】:

是的。只需在页面的任何位置使用它:PHP Mail

【讨论】:

  • 杰德,制作并编辑了我的问题。有没有办法在检查 URL 引用者是否满足某个域名的条件下添加它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多