【发布时间】:2018-02-26 15:17:48
【问题描述】:
首先,我要感谢 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;
}
【问题讨论】:
-
您好,那太好了,如果您找到答案,请告诉我们。但我认为这可能是一个很好的等待时间,即使你从 hotmail 或 gmail 发送电子邮件我认为我需要超过 1 分钟。
-
我建议您使用异步函数来发送电子邮件。这将帮助您更快地完成逻辑并提供快速响应。更多信息可以查看stackoverflow.com/questions/13846192/…
-
感谢您的回复。将尝试异步方法。
-
发送功能是如何工作的?当用户在同一功能中更新状态时,它会通过电子邮件发送给他们?像这种方式还是你稍后检查是否有任何新状态?
-
是的。当用户点击帖子时,将调用一个函数。此功能将插入数据库,然后发送电子邮件。此操作成功后,调用 ajax 函数刷新帖子,以便用户看到最新帖子。
标签: php codeigniter email