2012-04-06 7 views
1

Ich verwende den folgenden standardmäßigen Sendgrid-WebAPI-Code in einer PHP-Datei, die E-Mails erfolgreich sendet, wenn sie über den Webbrowser und mit Cron wget aufgerufen werden. Jedoch, wenn ich versuche, es mit Cron PHP auszuführen, funktioniert es nicht. Hier ist die Probe SendGrid Code:E-Mail senden mit Sendgrid WebAPI und Cron PHP

$url = 'http://sendgrid.com/'; 
$user = 'USERNAME'; 
$pass = 'PASSWORD'; 

$params = array(
    'api_user' => $user, 
    'api_key' => $pass, 
    'to'  => '[email protected]', 
    'subject' => 'testing from curl', 
    'html'  => 'testing body', 
    'text'  => 'testing body', 
    'from'  => '[email protected]', 
); 


$request = $url.'api/mail.send.json'; 

// Generate curl request 
$session = curl_init($request); 
// Tell curl to use HTTP POST 
curl_setopt ($session, CURLOPT_POST, true); 
// Tell curl that this is the body of the POST 
curl_setopt ($session, CURLOPT_POSTFIELDS, $params); 
// Tell curl not to return headers, but do return the response 
curl_setopt($session, CURLOPT_HEADER, false); 
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 

// obtain response 
$response = curl_exec($session); 
curl_close($session); 

// print everything out 
print_r($response); 

Hier wird der cron, das funktioniert:

*/5 * * * * root /usr/bin/wget -O /dev/null "http://www.mysite.com/directory/test.php" 

hier den Cron ist, was ich will, aber nicht funktioniert:

*/5 * * * * /usr/bin/php /var/www/html/directory/test.php 

Sehr verwirrt ... würde wirklich etwas Hilfe bei diesem zu schätzen wissen!

+0

Jeff, ich habe bemerkt, dass du heute ein paar SendGrid-Fragen gestellt hast. Ich bin einer der Entwickler Evangelisten, bitte zögern Sie nicht, mich zu erreichen, wenn Sie irgendwelche Probleme haben [swift (at) sendgrid (dot) com] – Swift

+0

Danke Mike, es war ein rauer Nachmittag, aber es beginnt, es herauszufinden dank viel Versuch und Irrtum und die hilfsbereiten Leute hier. – Jeff

Antwort

1

Normalerweise würden Sie ein PHP-Skript schreiben, das von der Kommandozeile (oder einen cron-Job) wie folgt ausgeführt werden können:

#!/usr/bin/php 
<?php 

... 


?> 

Sie müssen nur sicherstellen,/usr/bin/php sein ist der Pfad zur ausführbaren PHP-Datei. Finde das durch Eingabe von "whereis php" oder "which php"

Meine Vermutung ist, dass dein Skript deshalb nicht läuft.

+0

Das schien den Trick zu machen. – Jeff

+0

Freut mich zu hören, Jeff. –