0

私はphpを初めて使用します。データベースからデータを取得するスケジュールページを作成しています。データベースから、受信した電子メールの送信日時を選択しています。やろうとしているのは、送信日時が来たら、システムはそのアドレスに電子メールを送信する必要があるということです。

メール送信には、このAPIを使用しています。

これは、そのような機能を実行するためにこれに追加する必要がある私のコードです。3つのものを手に入れようとしています。1. 時間に達したデータベースから配列を取得します。2. ループを使用して配列に格納します。3. ループを介して電子メールを送信します。これは私のコードです。

<?php
  include('iSDK/src/isdk.php');
  $myApp = new iSDK();
  Test Connnection
  if ($myApp->cfgCon("connectionName"))

  {
  echo "Connected...";
  }
  else
  {
  echo "Not Connected...";
  }
  $query = mysql_query('SELECT communication.senddatetime,emails.email
                        FROM communication
                        INNER JOIN emails
                        ON communication.communication_id=emails.communication_id
                        WHERE senddatetime <= NOW()'); //or die(mysql_error())
 while($row = mysql_fetch_assoc($query)){
 $email=array($fetch);
 $result=mysql_num_rows($query);
 for($i=0; $i<$result; $i++){
 $obj=mysql_fetch_object($query);
 $emailaddress=$obj->email;
 }

 for($i=0; $i<$result; $i++){
 $conDat = array('FirstName' => 'Hassan',
                          'Email'     => $email);
        $conID = $myApp->addCon($conDat);
        $clist = array($conID);
$email = $myApp->sendEmail($clist,'kamranasadi431@gmail.com','~Contact.Email~','ccAddresses', 'bccAddresses', 'contentType', 'JK', 'htmlBody', 'txtBody');}
}

?>
4

3 に答える 3

1

cron ジョブを使用する必要があります。

まず、送信する電子メールがあるかどうかを確認する php スクリプトを作成する必要があります (時刻を取得し、それをデータベース内のタイムスタンプと比較して、必要な電子メールに関する情報を取得する単純な php ファイルにすることができます)。送信し、ヘッダー、件名、本文でメールを作成し、送信して終了します。)

次に、正常に動作するかどうかをテストするために、シェルで実行する必要があります (Linux システムで作業していると仮定します)。シェルでphpを実行するには、次のコマンドを使用できます

php /route/to/your/php/script.php var1 var2 .... varN

コマンド php が機能しない可能性があるため、インストールした php クライアントを確認する必要があります (非常に重要です。最初にシステムに php クライアントをインストールしておく必要があります -- apt-get install php5-cli )。シェルで次のように入力すると、システムにインストールされているphpを知ることができます

which php

シェルで php を実行する方法の詳細については、urlシェルでパラメーターを指定して php スクリプトを実行/実行します。

3 番目に行う必要があるのは、cronjob でスクリプトをプログラムすることです。たとえば、5 分間隔で実行したい場合は、次を cron に書き込むことができます (crontab -e)

*/5 * * * * php /route/to/your/php/script.php var1 var2 > /dev/null

または

*/5 * * * * /usr/bin/php /route/to/your/php/script.php var1 var2 > /dev/null

PHPを実行ファイルにする他のオプションがあるため、スクリプトの前にphpを使用してはならず、phpを開く前に次の行を追加する必要があります

#!/usr/bin/php
<?php
于 2014-02-28T17:43:26.030 に答える
1

24 時間年中無休で利用できるサーバーがない場合は、目的に合わせてクラウドを利用することもできます。

これをセットアップする簡単な方法は、Jenkins を IaaS または PaaS で使用することです。ジョブを作成し、いつ起動するかを指定するだけで、何もインストールまたは構成する必要はありません。

cron ジョブの構成は、ここで指定されている方法で行うことができます。完全なステップバイステップガイドもここにあります。

于 2014-03-03T06:37:18.000 に答える