我有一个表单上传,我将用户的输入添加到数据库中。作为该过程的一部分,我还向自己发送了一封电子邮件,其中包含一个文件的附件(用户上传的)。
代码结构非常简单:
//Establishing the $_POST[] vars
//Log them in DB
// Send out the email <-- This part adds 5 seconds to load time!!
//Redirect user to a success page
我向自己发送电子邮件的时间与用户点击“提交”和看到“成功”页面之间的加载时间相差 5 秒!!
发送电子邮件的代码如下所示:
$to = "test@test.com";
$subject = "new Image";
require_once('../api/class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = $smtp_host;
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = $smtp_host;
$mail->Port = $smpt_port;
$mail->Username = $smpt_email_username;
$mail->Password = $smpt_email_pass;
$mail->AddAddress($to, '');
$mail->SetFrom($set_from_email, $set_from_name);
$mail->AddReplyTo($replyto_email, $replyto_name);
$mail->Subject = "new image";
$mail->AltBody = $mail_altbody;
$mail->AddEmbeddedImage('../uploads/'.$image, 't');
$mail->IsHTML(true);
$mail->MsgHTML('<img src="cid:t" />');
$mail->Send();
我的问题是 - 是否可以异步发送电子邮件,因此它可以自行在服务器中进行,从而消除用户在发送电子邮件时等待额外时间的需要?
谢谢!