首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置发送邮件的时间间隔?

问如何设置发送邮件的时间间隔?
EN

Stack Overflow用户
提问于 2013-05-23 15:02:49
回答 3查看 599关注 0票数 0

当用户在我的网站中提交表单时,将向所有活动的供应商发送通知电子邮件,这是250个不同的供应商。为此,我使用了mail()函数,但有时用户在尝试提交表单时会看到内部服务器错误,并且会重复发送电子邮件。如果不同的用户同时提交表单,会不会有问题?我可以设置两次发送邮件的间隔吗?这是我的代码:

代码语言:javascript
复制
           $emails = mysql_query('select * from supplier_detail where emailquotes = "y" and s_active ="a"');

           while($row = mysql_fetch_assoc($emails)){

            $to = $row['s_email'];
            $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From: mysitename  <noreply@mysitename.com' . "\r\n";
    mail($to, $subject, $message, $headers);
    }
EN

回答 3

Stack Overflow用户

发布于 2013-05-23 15:07:54

php mail函数接受多个电子邮件ids。因此,您可以创建一个字符串,其中所有邮件ids都由commas分隔

代码语言:javascript
复制
$to = array();
while ($row = mysql_fetch_assoc($emails)) {
    $to[] = $row['s_email'];
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: mysitename  <noreply@mysitename.com' . "\r\n";
mail(implode(",", $to), $subject, $message, $headers);
票数 3
EN

Stack Overflow用户

发布于 2013-05-23 15:08:34

看一下sleep()函数,您的代码将如下所示:

代码语言:javascript
复制
while($row = mysql_fetch_assoc($emails))
{
   $to = $row['s_email'];
   $headers  = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $headers .= 'From: mysitename  <noreply@mysitename.com' . "\r\n";
   mail($to, $subject, $message, $headers);
   sleep(1);
}

这将等待1秒,然后再继续。

票数 0
EN

Stack Overflow用户

发布于 2013-05-23 15:08:36

在数据库中存储一个"last_email_sent“值并与之进行比较如何?然后,如果自上次发送以来的时间大于某段时间,则只会向该人发送新的电子邮件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16707582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档