当前位置: 首页 > 知识库问答 >
问题:

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

越星晖
2023-03-14

我是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');}
}

?>

共有3个答案

长孙硕
2023-03-14

如果您的终端没有24/7可用的服务器,您也可以利用云来实现您的目的。

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

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

孔正文
2023-03-14

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

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

这可能比每隔几分钟运行一次cron作业来查询数据库中需要发送的电子邮件要干净一些。您可以使用PHP的shell\u exec函数从PHP脚本运行上述系统命令。

有凯泽
2023-03-14

您应该使用cron作业。

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

其次,您必须在shell中执行它(我假设您使用的是Linux系统),以测试它是否正常工作。要在shell中执行php,可以使用下一个命令

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

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

which php

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

你必须做的第三件事是用cronwork编写脚本。例如,如果你想在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
 类似资料:
  • 我使用AWS SES服务发送电子邮件与验证的测试电子邮件地址在SES和使用相同的来源。 我正试图将电子邮件发送到其他电子邮件地址,但无法发送。这是给我的错误“电子邮件地址未经验证。以下身份未通过在US-EAST-1地区的检查”。 发送电子邮件的代码参考:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-

  • 你好;我正在使用s.o上给出的答案进行smtp邮件;(如果搜索,相信这是第一个结果) 但我仍然没有收到邮件;任何人都可以帮助发现任何错误或提供替代解决方案吗?我已经使用了内置的邮件程序,但它没有被认证,请参阅 -

  • 这个代码应该发送一封电子邮件到指定的地址,当我硬编码“文本” 努力编码的文本和主题,它发送罚款!注意:使用GMAIL时,您必须启用不太安全的应用程序!

  • 我正在试验Cognito,但我似乎不知道如何让Cognito向用户发送验证电子邮件,让他们验证他们的电子邮件地址。 这是在我的后端服务器中,我从新用户那里收到了用户名、电子邮件和密码。我正在抑制消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。 然而,用户从未收到验证其电子邮件地址的电子邮件。在用户池配置中,我在“要验证哪些属性”下选择了“电子邮件”我已经在SE

  • 在我正在开发的应用程序中,我可以指定许可证的到期日期,现在我想创建一个java Spring Bootapi,它可以在特定时间段(用户可以选择时间段)之前向特定电子邮件发送电子邮件。电子邮件的目的是通知用户他的许可证即将结束。 例如:用户选择的到期日为2023年3月8日,并选择在所选到期日前3个月收到通知。2023年3月5日,向用户的电子邮件发送一封电子邮件,通知用户许可证即将到期。 任何帮助都是

  • 问题内容: 在Swift 的正常情况下,我使用此代码发送邮件。 如何在SwiftUI中实现相同目标? 我需要使用吗? 问题答案: 如前所述,您需要将组件移植到via 。 这是一个简单的实现: 用法 : (在运行iOS 13的iPhone 7 Plus上进行了测试-就像一个护身符) 为Xcode 11.4更新