如何获得一系列电子邮件并确保它们都发送?

问题描述

| 我希望能够获得一系列电子邮件,并确保每封电子邮件都已发送。 (例如,数组>发送每封电子邮件>结果)我在这里更改了此问题,因为这很重要,此外我还添加了50个代表。点。按代码我该怎么做?     

解决方法

如果您只想一次发送一堆相同的电子邮件,则可以 可以在您的电子邮件数组上调用“ 0”将其转换为字符串:
$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。这个 不过,这不是您当前问题的一部分,因此我将其保留。     ,除了仍然使用“ 5”功能外,您可能还想设置一个cron作业来发送邮件。对于假脱机邮件发送作业,请使用单独的数据库表。或者,如果是关于某种邮件列表功能的,那么一个简单的收件人列表就可以了。     ,一样的方法。您必须具有将电子邮件发送到电子邮件地址的代码。无论它们是否在网站上,它都是相同的代码。您只需要知道他们的电子邮件地址即可。 编辑:如果您想知道如何触发发送电子邮件,也许您想使用cron作业计划它,例如每天午夜发送电子邮件。     ,这说明了一切,真的:http://php.net/manual/en/function.mail.php 您只需要安装外发邮件服务器(后缀,exim,sendmail)     ,发送电子邮件的简单方法:
$to = \"usermail@test.com\";
$from = \"my_email@mydomain.com\";
$subject = \"Hello!\";
$contents = \"This is an test mail!\";

mail($to,$contents,\"From: $from\");
    ,如果您无权访问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);
}
或者,您也可以将两者与
&&
组合使用。这取决于您的页面被点击的频率。 如果您想发送电子邮件的次数多于获得页面点击量的话……太糟糕了;)。或者让外部服务每隔一段时间调用该页面。