由于电子邮件发送延迟PHP CodeIgniter

时间:2017-09-18 06:58:24

标签: php codeigniter email

首先,我要感谢StackOVerflow及其用户帮助我解决了许多技术问题。我今天创建了这个帐户,因为我看不到类似的问题。

问题 - 我遇到了在PHP CodeIgniter中发送电子邮件的问题。函数$ this-> email-> send()每次执行大约需要3-4秒。

我们有一个社交平台,用户来这里发帖。每次用户上传新更新时,我们都希望向他/她发送电子邮件。 问题是发送电子邮件功能大约需要3-4秒,我们希望在1秒内完成。

有什么方法可以并行执行发送电子邮件流程吗?假设一个python代码连续运行以获取新更新并向这些用户发送电子邮件。还有比这更好的方法吗?

技术堆栈 - PHP CI,MySQL,Apache,Windows

这是每次新更新时都会调用的电子邮件代码 -

$config = Array(
        'protocol'  => 'smtp',
        'smtp_host' => 'smtp.gmail.com',
        'smtp_port' => 587,
        'smtp_user' => 'mailid@gmail.com',
        'smtp_pass' => 'password',
        'mailtype'  => 'html',
        'charset'   => 'utf-8',
        'smtp_crypto' => "tls"
        );

$this->load->library('email', $config);
$this->email->set_newline("\r\n");
$this->email->set_mailtype("html");
$this->email->from('mailid@gmail.com', 'Support');
$this->email->to($this->session->userdata['email']);
$this->email->subject('You have posted a new update');
$this->email->message('Please login to check your new update. Do not reply to this email. For any issues reach out to email@emailid.com');

if (!$this->email->send())
{
    show_error($this->email->print_debugger());
}
else
{
    echo true;
}

2 个答案:

答案 0 :(得分:1)

我的建议是将电子邮件存储在数据库中并使用cron作业发送电子邮件 上传用户不应该等待一次发送一封电子邮件。

如果您需要cron作业或smtp mailer的代码,请在此答案中添加评论。

答案 1 :(得分:1)

如果您的功能运行得更快但电子邮件发送速度较慢,那么您的smtp连接一定有问题。您的服务器快速连接SMTP的速度要快得多,或者您使用的SMTP响应速度慢一点。 在这种情况下,请尝试使用gmail SMTP并查看结果。