Zunächst möchte ich StackOVerflow und seinen Benutzern für die Hilfe bei der Lösung einer Reihe von technischen Problemen danken. Ich habe diesen Account heute erstellt, da ich nicht sehen konnte, dass ähnliche Probleme angesprochen werden.Verzögerung per E-Mail senden PHP CodeIgniter
Das Problem - Ich bin mit einem Problem mit dem Senden von E-Mails in PHP CodeIgniter stecken. Die Funktion $ this-> email-> send() benötigt jedes Mal ca. 3-4 Sekunden um sie auszuführen.
Wir haben eine soziale Plattform, auf der Nutzer kommen und Dinge veröffentlichen. Jedes Mal, wenn der Nutzer ein neues Update hochlädt, möchten wir ihm eine E-Mail senden. Das Problem ist, die E-Mail-Funktion dauert etwa 3-4 Sekunden und wir würden es lieben, es unter 1 Sekunde herunterzubringen.
Gibt es eine Möglichkeit, den Sende-E-Mail-Prozess parallel auszuführen? Sagen Sie einen Python-Code, der kontinuierlich ausgeführt wird, um neue Updates zu holen und E-Mails an diese Benutzer zu senden. Jede bessere Methode als das?
Technologie-Stack - PHP CI, MySQL, Apache, Windows-
Dies ist der E-Mail-Code, der auf jedes neues Update aufgerufen wird -
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'smtp.gmail.com',
'smtp_port' => 587,
'smtp_user' => '[email protected]',
'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('[email protected]', '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 protected]');
if (!$this->email->send())
{
show_error($this->email->print_debugger());
}
else
{
echo true;
}
Hallo, Nun, das wäre großartig, wenn Sie die Antwort finden, lassen Sie es uns wissen. Aber ich denke, dass eine gute Wartezeit sein kann, auch wenn Sie E-Mails von Hotmail oder Gmail senden, ich denke, ich brauche länger als 1 Minute. –
Ich würde vorschlagen, dass Sie asynchrone Funktionen verwenden, um die E-Mail zu senden. Dies wird Ihnen helfen, Ihre Logik schneller abzuschließen und schnelle Antworten zu geben. Für weitere Informationen können Sie https://stackoverflow.com/questions/13846192/php-threading-call-to-a-php-function-asynchronous –
Vielen Dank für Ihre Antworten. Versuche die asynchronen Methoden. –