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 问题也得到解决,现在一切正常。