0

自動定期メール リマインダー アプリの設定をどこから始めればよいかわかりません。現在、msyql データベースにデータを挿入するフォームがあります。

<form method="post" action="save.php">

<p>
    <label for="name">Full Name</label><br />
    <input type="text" name="name" data-h5-errorid="error-name" required />
    <span id="error-name" class="error">Please enter a full name</span>
</p>

<p>
    <label for="address">Address (Street Address Only)</label><br />
    <input type="text" name="address" data-h5-errorid="error-address" required />
    <span id="error-address" class="error">Please enter an address</span>
</p>

<p>
    <label for="email">Email</label><br />
    <input type="email" name="email" data-h5-errorid="error-email" required />
    <span id="error-email" class="error">Please enter a valid email address</span>
</p>

<p>
    <label for="date">Date of Service</label><br />
    <input id="date" type="text" data-h5-errorid="error-service" name="date" required />
    <span id="error-service" class="error">Please choose a date</span>
</p>

<p>
    <label for="reminder">Reminder</label><br />
    <select name="reminder">
        <option value="1">30 Days</option>
        <option value="2">60 Days</option>
        <option value="3">Semiannual</option>
        <option value="4">Annual</option>
    </select>
</p>

<p>
    <label for="notes">Notes on Service</label><br />
    <textarea name="notes" rows="15"></textarea>
</p>

<p>
    <input type="submit" value="Submit" />
</p>

</form>

すべてのフィールドをデータベースに保存しており、http://medoo.in/を使用して適切に機能しています。サービス日と選択したリマインダー (30 日ごと、60 日ごと、半年ごと、年 1 回) に基づいて繰り返しメールを送信する PHP スクリプトを作成するにはどうすればよいですか? PHPメーラーを使用して実際のメールを送信し、毎日cronジョブを実行することを考えていました.

4

2 に答える 2

0
<?php

//first start with a MySQL query to gather the rows to send an email
//this is for 30 days but you can adjust the numbers for each case

$30_day_query = "SELECT * FROM users WHERE reminder = 1 AND date
BETWEEN DATE_SUB(NOW(),INTERVAL 29 DAY) AND DATE_SUB(NOW(), INTERVAL 30 DAY)";

$execute = mysql_query($30_day_query);

while($row = mysql_fetch_array($execute)){
//get info of user
$name = $row['name'];
$email = $row['email'];

//send the email however you want
}
//repeat for the rest of the reminder options
?>

これを毎日の cron ジョブで実行すると、メールが重複して送信されることはありません。

于 2013-09-28T21:12:03.077 に答える
0

cronjob の時間間隔を設定するコードを書くだけです (フォームから受け取ったデータを使用します)。DirectAdmin を使用している場合は、Dušan Radojević によるCronjob execute PHP script answer に従ってください。その後、ほぼ完成!

于 2013-09-28T21:13:01.870 に答える