首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AT命令发送未来的电子邮件

如何使用AT命令发送未来的电子邮件
EN

Stack Overflow用户
提问于 2010-12-31 00:43:41
回答 1查看 2.9K关注 0票数 2

我只需要在未来发送one电子邮件,所以我想我最好使用at而不是cron。到目前为止,这就是我所拥有的,它杂乱无章,丑陋不堪,而且没有那么好的逃避能力:

代码语言:javascript
复制
<pre>
<?php
    $out = array();

    // Where is the email going?
    $email = "you@gmail.com";

    // What is the body of the email (make sure to escape any double-quotes)
    $body = "This is what is actually emailed to me";
    $body = escapeshellcmd($body);
    $body  = str_replace('!', '\!', $body);


    // What is the subject of the email (make sure to escape any double-quotes)
    $subject = "It's alive!";
    $subject = escapeshellcmd($subject);
    $subject  = str_replace('!', '\!', $subject);


    // How long from now should this email be sent? IE: 1 minute, 32 days, 1 month 2 days.
    $when = "1 minute";

    $command= <<<END
    echo "
            echo \"$body\" > /tmp/email;
            mail -s \"$subject\" $email < /tmp/email;
            rm /tmp/email;
    " | at now + $when;
END;

    $ret = exec($command, $out);
    print_r($out);
?>

</pre>

输出应该类似于

警告:将使用/bin/sh执行命令

工作60在清华12月30日19:39:00 2010

然而,我做了什么错误的主管,但没有得到结果?

最重要的是这看起来很混乱。有没有其他更好的方法来做这件事?

PS:我不得不将apache的用户(www-data )添加到/etc/ it。允许我不喜欢的...Which,但我可以接受它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-31 01:11:15

你基本上在做

代码语言:javascript
复制
mail | at

它会将邮件的输出输送到at命令。这是错误的。邮件命令将立即执行,输出(通常没有,除非有警告)将被安排在您指定的任何时间运行。

您的脚本应该将邮件命令转储到文件中,然后对

代码语言:javascript
复制
at whenver < mailcmd.sh
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4567345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档