ユーザーの入力をデータベースに追加するフォームのアップロードがあります。プロセスの一環として、(ユーザーがアップロードした) ファイルを添付したメールを自分宛に送信します。
コード構造は非常に単純です。
//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();
私の質問は、電子メールを非同期で送信することは可能ですか。それにより、電子メールの送信中にユーザーが追加の時間を待つ必要がなくなり、サーバーでそれ自体を行うことができますか?
ありがとう!