Php 我怎样才能拥有一系列电子邮件并确保它们都发送出去?

Php 我怎样才能拥有一系列电子邮件并确保它们都发送出去?,php,mysql,email,web-applications,Php,Mysql,Email,Web Applications,我想能够得到一系列的电子邮件,并确保每一封电子邮件都已发送。(例如数组>发送每封电子邮件>结果)我在这里有点改变了问题,因为这更重要,加上我增加了50分。代码方面我如何才能做到这一点?同样的方法。您必须具有向电子邮件地址发送电子邮件的代码。无论它们是否在网站上,都是相同的代码。你只需要知道他们的电子邮件地址 编辑:如果您想知道如何触发发送电子邮件,可能需要使用cron作业来安排发送,例如每天午夜发送电子邮件。同样的方法。您必须具有向电子邮件地址发送电子邮件的代码。无论它们是否在网站上,都是相同的

我想能够得到一系列的电子邮件,并确保每一封电子邮件都已发送。(例如数组>发送每封电子邮件>结果)我在这里有点改变了问题,因为这更重要,加上我增加了50分。代码方面我如何才能做到这一点?

同样的方法。您必须具有向电子邮件地址发送电子邮件的代码。无论它们是否在网站上,都是相同的代码。你只需要知道他们的电子邮件地址


编辑:如果您想知道如何触发发送电子邮件,可能需要使用cron作业来安排发送,例如每天午夜发送电子邮件。

同样的方法。您必须具有向电子邮件地址发送电子邮件的代码。无论它们是否在网站上,都是相同的代码。你只需要知道他们的电子邮件地址


编辑:如果您想知道如何触发电子邮件发送,也许您想使用cron作业来安排发送,例如每天午夜发送电子邮件。

这说明了一切,真的:


您只需要安装一个发送邮件服务器(postfix、exim、sendmail)

这说明了一切,真的:


您只需要安装一个发送邮件服务器(postfix、exim、sendmail)

发送电子邮件的简单方法:

$to = "usermail@test.com";
$from = "my_email@mydomain.com";
$subject = "Hello!";
$contents = "This is an test mail!";

mail($to, $subject, $contents, "From: $from");

发送电子邮件的简便方法:

$to = "usermail@test.com";
$from = "my_email@mydomain.com";
$subject = "Hello!";
$contents = "This is an test mail!";

mail($to, $subject, $contents, "From: $from");

除了仍然使用该功能外,您可能还需要设置一个用于发送邮件的cron作业。对于假脱机邮件发送作业,请使用单独的数据库表。或者,如果是关于某种邮件列表功能,那么一个简单的收件人列表就可以了。

除了仍然使用该功能外,您可能还需要设置一个用于发送邮件的cron作业。对于假脱机邮件发送作业,请使用单独的数据库表。或者,如果它是关于某种邮件列表功能,那么一个简单的收件人列表就可以了。

如果您没有访问cron作业的权限,那么您可能很难在没有用户交互的情况下运行

处理此问题的常用方法是每N页加载一次,或每隔一段时间运行一次。只有当你有一个网站的访问频率和你想发送电子邮件的频率差不多时,这才有效。您还需要使用符合ACID的数据库。下面是伪代码

if (1 == rand(1,100)) { // run once every 100 page loads
    $emails = get_emails_to_send();
    mark_emails_as_sent($emails);
    $results = send_emails($emails);
    mark_failures_as_needing_to_be_sent($results);
}
或者,您可以在计时器上运行它:

if (time() - get_last_time_run() > $run_at_least_once_every_this_many_seconds) {
    $emails = get_emails_to_send();
    mark_emails_as_sent($emails);
    $results = send_emails($emails);
    mark_failures_as_needing_to_be_sent($results);
}
或者,您可以将两者结合使用
&&
。这取决于页面被点击的频率


如果您想发送电子邮件的频率高于页面点击率。。。太糟糕了;)。或者每隔一段时间就有一个外部服务调用该页面。

如果您没有访问cron作业的权限,那么您可能很难在没有用户交互的情况下运行

处理此问题的常用方法是每N页加载一次,或每隔一段时间运行一次。只有当你有一个网站的访问频率和你想发送电子邮件的频率差不多时,这才有效。您还需要使用符合ACID的数据库。下面是伪代码

if (1 == rand(1,100)) { // run once every 100 page loads
    $emails = get_emails_to_send();
    mark_emails_as_sent($emails);
    $results = send_emails($emails);
    mark_failures_as_needing_to_be_sent($results);
}
或者,您可以在计时器上运行它:

if (time() - get_last_time_run() > $run_at_least_once_every_this_many_seconds) {
    $emails = get_emails_to_send();
    mark_emails_as_sent($emails);
    $results = send_emails($emails);
    mark_failures_as_needing_to_be_sent($results);
}
或者,您可以将两者结合使用
&&
。这取决于页面被点击的频率


如果您想发送电子邮件的频率高于页面点击率。。。太糟糕了;)。或者让外部服务每隔一段时间给该页面打一次电话。

如果您只想同时发送一堆相同的电子邮件,您可以 可以对电子邮件数组调用
内爆()
,将其转换为字符串:

$to_string = implode(', ', $to_array);
或者,如果你想尝试更复杂的东西,你可以使用
foreach
循环浏览每封电子邮件并跟踪 成功与失败:

$success = array();
$failure = array();

foreach ($to_array as $to_email)
{
  if (mail($to_email, $subject, $message, ...))
    $success[] = $to_email;
  else
    $failure[] = $to_email;
}
我猜你最初的问题与发送所有这些信息有关 每天发电子邮件或其他不需要你打电话的事情 按钮如果您具有ssh访问权限,请查看如果键入:

crontab -e
如果您遇到某种错误,您将不得不与您的系统对话 管理员:关于cron。如果您得到一个文件,那么您可以使用cron。这
不过,这不是您当前问题的一部分,所以我不提了。

如果您只想同时发送一堆相同的电子邮件,您可以 可以对电子邮件数组调用
内爆()
,将其转换为字符串:

$to_string = implode(', ', $to_array);
或者,如果你想尝试更复杂的东西,你可以使用
foreach
循环浏览每封电子邮件并跟踪 成功与失败:

$success = array();
$failure = array();

foreach ($to_array as $to_email)
{
  if (mail($to_email, $subject, $message, ...))
    $success[] = $to_email;
  else
    $failure[] = $to_email;
}
我猜你最初的问题与发送所有这些信息有关 每天发电子邮件或其他不需要你打电话的事情 按钮如果您具有ssh访问权限,请查看如果键入:

crontab -e
如果您遇到某种错误,您将不得不与您的系统对话 管理员:关于cron。如果您得到一个文件,那么您可以使用cron。这
但是,这不是您当前问题的一部分,所以我不提了。

如果您有电子邮件地址,您可以随时发送电子邮件。您的意思是定期发送电子邮件而不是单击“发送”按钮吗?在没有用户交互的情况下运行php?是的,在没有用户交互的情况下运行php如果你有电子邮件地址,你可以随时发送电子邮件。你是说定期发送电子邮件而不是单击“发送”按钮吗?在没有用户交互的情况下运行php?是的,在没有用户交互的情况下运行php如何创建/编程cron作业?它是如何执行和发送邮件的?问问你的主人。通常,您通过web界面设置cron作业,或者您应该通过shell访问和
crontab-e
拥有高端合同。另一种方法是
at
spooler。如何创建/编程cron作业?它是如何执行和发送邮件的?问问你的主人。通常,您通过web界面设置cron作业,或者您应该通过shell访问和
crontab-e
拥有高端合同。另一种方法是
at
spooler。