在将来某个时间发送电子邮件



我是php的新手,我正在制作一个从数据库获取数据的时间表页面。从数据库中,我正在挑选电子邮件的发送时间和日期。我想做的是,如果发送日期和时间已经到来,系统应该向该地址发送电子邮件。

对于电子邮件发送,我使用这个API。

这是我的代码,我应该在其中添加它来执行这样的功能。我想得到三样东西。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');}
}
?>

您应该使用cron作业。

首先,你必须创建一个php脚本,如果有任何电子邮件要发送,它的外观(它可以是一个简单的php文件,可以获取时间,并将其与数据库中的时间戳进行比较,然后获取你想要发送的电子邮件的信息,用你的标题、主题和正文组成电子邮件,然后通过发送完成。)

其次,你必须在shell中执行它(我假设你使用的是Linux系统),以测试它是否正常工作

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

也许php命令无法工作,所以您必须知道您安装了哪个php客户端(非常重要的是,您必须首先在系统中安装了php客户端--apt-get-install php5-cli)。你可以知道你在系统中安装了哪个php,在shell 中键入下一个

which php

您将在url中找到有关如何在shell中执行php的更多信息。shell运行/执行带有参数的php脚本

您必须做的第三件事是在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作为exec文件,因此您不能在脚本之前使用php,而是在打开php之前添加下一行

#!/usr/bin/php
<?php

安排稍后发送电子邮件的另一种方法是通过将sendmailat相结合的系统命令,如下所示:

/usr/sbin/sendmail -f from@from.com to@to.com < message.txt | at 16:00 today

这可能比每隔几分钟运行一次cron作业稍微干净一点,该作业会在数据库中查询需要发送的电子邮件。您可以使用PHP的shell_exec函数从PHP脚本运行上述系统命令。

如果您的端没有全天候可用的服务器,您也可以利用云来实现您的目的。

一种简单的设置方法是在IaaS或PaaS上使用Jenkins,在那里你只需要创建你的作业并指定你想何时启动它,而无需安装或配置任何东西。

cron作业配置可以按照此处指定的方式进行。完整的分步指南也可以在这里找到。

最新更新