【问题标题】:How can I use a PHP email variable with cron?如何在 cron 中使用 PHP 电子邮件变量?
【发布时间】:2011-12-31 19:40:12
【问题描述】:

我有一项服务,可以在 x 天后向输入的电子邮件发送文本。我想使用 cron,但我知道因为我的 PHP 脚本使用变量,所以这行不通。如何更改我的 PHP 或做任何可以让我使用 cron(甚至其他东西)的事情?我只需要一些东西来存储电子邮件然后发送它们。我是真的 PHP 新手,所以请保持简单。

这是我的代码:

<?php    
    if(isset($_POST['email']))
    {
        $headers = "From: Memory Jet <your_company@example.com>\r\n";
        $to_visitor = $_POST["email"];
        $common_data = $_POST["message"];
        mail($to_visitor, "Your Memory", $common_data, $headers);
    }
?>

【问题讨论】:

  • 刚接触PHP,你用过数据库吗?熟悉将数据持久化到数据库将使这更容易,因为您的站点可以在数据库中将电子邮件消息排队,然后您的 cron 执行的 PHP 脚本可以检查数据库中的电子邮件消息以发送和发送它们。这将有效地将 Web 应用程序与计划的应用程序分离,这是一件好事。
  • 您能提供一些代码或文档吗?我还没用过数据库
  • php.net/manual/en/book.mysql.php 是一个很好的起点。我假设你会想使用 MySQL 作为你的数据库,而且网上不乏教程。但是请注意,您在网上找到的大量数据库代码存在明显的安全漏洞。这是你想要继续学习和改进的东西,而不仅仅是让它工作和运行。作为初学者,请特别注意“SQL 注入攻击”等主题。如果您知道要寻找什么,它们很容易预防。
  • 谢谢,请问safka说的方法我也可以用吗?
  • 当然,只要调用脚本的任何人(我认为这是一个自动化的cron 工作)都知道电子邮件地址是什么。如果这最终要求您为每封要发送的电子邮件动态排队 cron 作业,我不推荐它。但我不知道你的设置,所以可能不是这样。无论如何,能够在数据库中跨应用程序持久化数据是值得学习的。

标签: php email cron


【解决方案1】:

使用 argv 数组读取 CLI 参数 - http://php.net/manual/en/features.commandline.usage.php

如果您的脚本被命名为/bin/script.php,那么如果调用为/bin/script.php xyz,则如下:

$email = $argv[1];

会将'xyz' 分配给$email

只需阅读我提供的文档 - 这就是你所需要的

【讨论】:

  • 有没有办法可以自动添加参数?通过脚本什么的?
【解决方案2】:

如果您想存储数据以供以后传输,则使用数据库存储信息或将其写入文件都可以让您检索它。

如果您以后可能需要编辑和操作数据,我建议您使用数据库。

我还建议查看 http://www.tizag.com/phpT/ 以获得一些好的、简单的 PHP 教程,这些教程在我刚开始的时候对我很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 2013-10-10
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多