2

在这里,当我循环发送电子邮件时,我遇到了一个问题。详情如下:

我有一个名为 email.csv 的 csv 文件。我正在上传这个文件并从这个 csv 文件中读取电子邮件。我正在使用 codeignitor 框架。读取csv文件并发送邮件的代码,代码如下。

 $file = $_FILES['email_from_file'][tmp_name];
                        $handle = fopen($file,"r");

                        if (($handle = fopen($file,"r")) !== FALSE) {
                            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                                $num = count($data);
                                for ($c=0; $c < $num; $c++) {
                                    $this->email->clear();
                                    $this->email->set_mailtype("html");
                                    $this->email->to(trim($data[$c]));
                                    $this->email->from('admin@workerbee.com');
                                    $this->email->subject($data['news_letter_info'][0]['subject']);
                                    $this->email->message($data['news_letter_info'][0]['template_body']);
                                    $this->email->send();
                                }
                            }
                            fclose($handle);
                        }

当我发送电子邮件时,执行和发送电子邮件需要花费太多时间。而且我的浏览器也挂了。那么是否有任何可能的方法可以使用 shell 命令发送这些电子邮件,该命令将在后台执行 php 脚本。

预先感谢。

4

2 回答 2

1

用这个。

exec('php /<SERVER PATH>/send_bulkmail.php');

在您的 send_bulkmail.php 中,使用代码使用 fread() 或 file_get_content() 读取文件并像上面所做的那样发送邮件。

于 2013-06-21T09:55:27.973 回答
0

我将 Cron 作业用于此类任务。

检查 crontab 手册。http://www.linuxmanpages.com/man5/crontab.5.php

前任。

*/5 * * * * php /u1/dev/cuser5/scripts/cli.php --action project/.../messages/send-email.php

这个意思。每天每 5 分钟运行一次发送电子邮件文件。

注意:如果您有很多电子邮件要发送,那么您应该以较小的组发送电子邮件。

于 2013-06-21T10:04:36.213 回答