我希望能够收到一系列电子邮件,并确保每封电子邮件都已发送。 (例如,数组>发送每封电子邮件>结果)我在这里改变了一个问题,因为这更重要,另外我添加了50个代表。点。 Codewise我该怎么做?
答案 0 :(得分:2)
除了仍然使用mail()
功能外,您可能还想设置 cron作业来发送邮件。对于假脱机邮件,发送作业使用单独的数据库表。或者,如果它是关于某种邮件列表功能,那么一个简单的收件人列表就可以了。
答案 1 :(得分:1)
同样的道理。您必须具有将电子邮件发送到电子邮件地址的代码。无论他们是否在网站上,都是相同的代码。您只需要知道他们的电子邮件地址。
编辑:如果您想知道如何触发要发送的电子邮件,可能您想使用cron作业安排它,例如每天午夜发送电子邮件。
答案 2 :(得分:1)
这说明了一切,真的:http://php.net/manual/en/function.mail.php
您只需安装外发邮件服务器(postfix,exim,sendmail)
答案 3 :(得分:1)
发送电子邮件的简便方法:
$to = "usermail@test.com";
$from = "my_email@mydomain.com";
$subject = "Hello!";
$contents = "This is an test mail!";
mail($to, $subject, $contents, "From: $from");
答案 4 :(得分:1)
如果您只想一次发送一堆相同的电子邮件,那么
可以在您的电子邮件数组上调用implode()
将其转换为字符串:
$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 :(得分:0)
如果您无法访问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);
}
或者您可以将两者结合使用&&
。这取决于您的网页被点击的频率。
如果您希望发送电子邮件的频率高于页面点击次数...太糟糕了;)。或者让外部服务经常调用页面。