首先,我要感谢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;
}
答案 0 :(得分:1)
我的建议是将电子邮件存储在数据库中并使用cron作业发送电子邮件 上传用户不应该等待一次发送一封电子邮件。
如果您需要cron
作业或smtp mailer
的代码,请在此答案中添加评论。
答案 1 :(得分:1)
如果您的功能运行得更快但电子邮件发送速度较慢,那么您的smtp连接一定有问题。您的服务器快速连接SMTP的速度要快得多,或者您使用的SMTP响应速度慢一点。 在这种情况下,请尝试使用gmail SMTP并查看结果。