Phpmailer 调用 slim api 两次
Phpmailer call slim api twice
我正在使用 Slim 框架来创建我的 api。我正在使用 phpmailer 发送电子邮件。邮件发送正确。但我的问题是 $mail->send()
触发了我的 api 两次,因此我的回答是错误的。请告诉我为什么 $mail->send()
在 slim 中再次调用我的 api 以及我该如何解决它。这是我的代码
$app->post('/requestPreview', function () use ($app) {
// $file = fopen('testphpmailer.txt',"w");
verifyRequiredParams(array('fname', 'lname', 'email', 'event_code', 'app_version'));
global $user_id, $condition;
$response = array();
$fname = $app->request->post('fname');
$lname = $app->request->post('lname');
$email = $app->request->post('email');
$event_code = $app->request->post('event_code');
$app_version = $app->request->post('app_version');
//echo fwrite($file,"incoming vaiables: Firstname=".$fname);
//echo fwrite($file,"incoming vaiables: Lastname=".$lname);
//echo fwrite($file,"incoming vaiables: Email=".$email);
//echo fwrite($file,"incoming vaiables: event_code=".$event_code);
//echo fwrite($file,"incoming vaiables: app_version=".$app_version);
$db = new DbHandler();
//$db->sendmail($email);
$res = $db->signup($fname, $lname, $email, $event_code, $app_version);
//echo fwrite($file,"Result".$res['status']);
if ($res['status'] == "one") {
//echo fwrite($file,"Inside If".$res['status']);
$password = $res['password'];
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Username = "abc@gmail.com";
$mail->Password = "*******";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->From = "abc@gmail.com";
$mail->AddAddress("abc@gmail.com");
$mail->Subject = "Welcome to www.abc.com .Your Account has been created and your password is:";
$mail->Body = "Welcome to www.abc.com .Your Account has been created and your password is:";
$mail->Send(); /*When this line runs then it it send the gmail and my api is called and below mentioned response is never executed*/
$response["event_code"] = $event_code;
$response["email"] = $email;
$response["fname"] = $fname;
$response["lname"] = $lname;
$response["CreateUser"] = false;
echoRespnse(200, $response);
} else {
// echo fwrite($file,"Inside else = ".$res['status']);
$response["error"] = "already in system";
$response["fname"] = "null";
$response["lname"] = "null";
echoRespnse(200, $response);
}
//echo fwrite($file,"Hello World. Testing!");
//fclose($file);
});
实际上我正在从 json 获取响应。但是当我使用异步任务从 Http urlconnection 获取响应时,我的 phpmailer 问题也得到解决,现在一切正常。
我正在使用 Slim 框架来创建我的 api。我正在使用 phpmailer 发送电子邮件。邮件发送正确。但我的问题是 $mail->send()
触发了我的 api 两次,因此我的回答是错误的。请告诉我为什么 $mail->send()
在 slim 中再次调用我的 api 以及我该如何解决它。这是我的代码
$app->post('/requestPreview', function () use ($app) {
// $file = fopen('testphpmailer.txt',"w");
verifyRequiredParams(array('fname', 'lname', 'email', 'event_code', 'app_version'));
global $user_id, $condition;
$response = array();
$fname = $app->request->post('fname');
$lname = $app->request->post('lname');
$email = $app->request->post('email');
$event_code = $app->request->post('event_code');
$app_version = $app->request->post('app_version');
//echo fwrite($file,"incoming vaiables: Firstname=".$fname);
//echo fwrite($file,"incoming vaiables: Lastname=".$lname);
//echo fwrite($file,"incoming vaiables: Email=".$email);
//echo fwrite($file,"incoming vaiables: event_code=".$event_code);
//echo fwrite($file,"incoming vaiables: app_version=".$app_version);
$db = new DbHandler();
//$db->sendmail($email);
$res = $db->signup($fname, $lname, $email, $event_code, $app_version);
//echo fwrite($file,"Result".$res['status']);
if ($res['status'] == "one") {
//echo fwrite($file,"Inside If".$res['status']);
$password = $res['password'];
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Username = "abc@gmail.com";
$mail->Password = "*******";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->From = "abc@gmail.com";
$mail->AddAddress("abc@gmail.com");
$mail->Subject = "Welcome to www.abc.com .Your Account has been created and your password is:";
$mail->Body = "Welcome to www.abc.com .Your Account has been created and your password is:";
$mail->Send(); /*When this line runs then it it send the gmail and my api is called and below mentioned response is never executed*/
$response["event_code"] = $event_code;
$response["email"] = $email;
$response["fname"] = $fname;
$response["lname"] = $lname;
$response["CreateUser"] = false;
echoRespnse(200, $response);
} else {
// echo fwrite($file,"Inside else = ".$res['status']);
$response["error"] = "already in system";
$response["fname"] = "null";
$response["lname"] = "null";
echoRespnse(200, $response);
}
//echo fwrite($file,"Hello World. Testing!");
//fclose($file);
});
实际上我正在从 json 获取响应。但是当我使用异步任务从 Http urlconnection 获取响应时,我的 phpmailer 问题也得到解决,现在一切正常。