AT komutu kullanarak gelecekteki bir e-posta göndermek nasıl

0 Cevap php

Ben sadece geleceğe one e-posta göndermek gerek, bu yüzden ben cron ile at yerine kullanılarak en iyi olacağını düşündüm. Bu ben bugüne kadar ne var, onun dağınık ve çirkin ve kaçan pek iyi değil:

<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>

Çıkış gibi bir şey olmalı


warning: commands will be executed using /bin/sh
job 60 at Thu Dec 30 19:39:00 2010

Ancak ben exec ile yanlış bir şey yapıyor ve sonuç alamıyorum?

Önemli olan bu çok dağınık görünüyor olduğunu. Is there any alternative better methods for doing this?

PS: Ben etc / at.allow ... Ben sevmiyorum Hangi / için apache kullanıcı (benim için www-data) eklemek zorunda, ama ben onunla yaşayabilir.

0 Cevap