PHPMailer를 사용하여 ionic에서 이메일을 보내는 동안 오류 응답 받기

Charbelalam

사용자가 내 애플리케이션에서 자신의 계정 비밀번호를 재설정하기 위해 이메일을 입력하는 ionic에서 비밀번호 재설정 페이지를 만들려고합니다. 문제는 이메일이 자신의 이메일로 전송되었는지 여부를 사용자에게 알려주는 PHP에서 응답을 보내려는 것입니다. 일어나는 일은 이메일이 전송되었지만 응답 오류가 표시된다는 것입니다.

내 typescript 코드는 다음과 같습니다.

   async sendEmail() {
        var regEmail = /^([a-zA-Z0-9\.-_]+)@([a-zA-Z0-9-]+).([a-z]{2,20})$/;
        if (!regEmail.test(this.resetPasswordForm.value.email)) {
            this.showToast("Invalid email");
            return;
        }

        const loading = await this.load.create({
            message: 'Please wait...'
        });
        loading.present();
        this.auth.sendEmailVerification(this.resetPasswordForm.value).subscribe((data) => {
            console.log(data);
            if (data == "sent") {
                this.showAlert("Great!", "We have sent you an email, check your inbox.");
                this.resetPasswordForm.reset();
            }
            else if (data == "notfound") {
                this.showAlert("Error!", "This email was not found.");
            } else if (data == "error") {
                this.showAlert("Oupss!", "An error occured and email could not be sent.");
            }
        }, (err) => {
                console.log(err);
                this.showAlert("Error!", err.message);
        });
        loading.dismiss();
    }

PHP 코드 :

<?php
session_start();
require("headers.php");
require("connection.php");
$userData=file_get_contents("php://input");
$request=json_decode($userData);
$to=$request->email;

// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

// Load Composer's autoloader
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';
require 'phpmailer/src/Exception.php';

$con=connect();
$checkUser="SELECT count(*) from users where email='$to'";
$res=mysqli_query($con,$checkUser);
$row=mysqli_fetch_array($res);

if($row[0]==1){
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
    $randomNumber=mt_rand(100000,999999);
    $_SESSION["random"]=$randomNumber;
    //Server settings
    $mail->SMTPDebug = 2;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = '';                     // SMTP username
    $mail->Password   = '';                               // SMTP password
    $mail->SMTPSecure = 'tls';         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

    //Recipients
    $mail->setFrom('[email protected]','[email protected]');
    $mail->addAddress($to);     // Add a recipient
    print json_encode("sent");

    // Attachments
   // $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
   // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = "Password reset email for account: ".$to;
    $mail->Body    = "Your confirmation code to reset your password is: ".$randomNumber;
    //$mail->AltBody =;
    $mail->send();



} catch (Exception $e) {
    print json_encode("error");
}
}else print json_encode("notfound");

mysqli_close($con);
?>

내가 얻는 오류는 다음과 같습니다.

HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://127.0.0.1/interactive-contact-list/sendEmail.php", ok: false, …}
error:
error: SyntaxError: Unexpected number in JSON at position 6 at JSON.parse (<anonymous>) at XMLHttpRequest.onLoad (http://localhost:8100/vendor.js:7290:51) at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3505:35) at Object.onInvokeTask (http://localhost:8100/vendor.js:64524:33) at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3504:40) at Zone.runTask (http://localhost:8100/polyfills.js:3273:51) at ZoneTask.invokeTask [as invoke] (http://localhost:8100/polyfills.js:3586:38) at invokeTask (http://localhost:8100/polyfills.js:4727:18) at XMLHttpRequest.globalZoneAwareCallback (http://localhost:8100/polyfills.js:4764:25)
message: "Unexpected number in JSON at position 6"
stack: "SyntaxError: Unexpected number in JSON at position 6↵    at JSON.parse (<anonymous>)↵    at XMLHttpRequest.onLoad (http://localhost:8100/vendor.js:7290:51)↵    at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3505:35)↵    at Object.onInvokeTask (http://localhost:8100/vendor.js:64524:33)↵    at ZoneDelegate.invokeTask (http://localhost:8100/polyfills.js:3504:40)↵    at Zone.runTask (http://localhost:8100/polyfills.js:3273:51)↵    at ZoneTask.invokeTask [as invoke] (http://localhost:8100/polyfills.js:3586:38)↵    at invokeTask (http://localhost:8100/polyfills.js:4727:18)↵    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:8100/polyfills.js:4764:25)"
__proto__: Error
constructor: ƒ SyntaxError()
arguments: (...)
caller: (...)
length: 1
name: "SyntaxError"
prototype: Error {name: "SyntaxError", message: "", constructor: ƒ}
__proto__: ƒ Error()
[[Scopes]]: Scopes[0]
message: ""
name: "SyntaxError"
__proto__:
constructor: ƒ Error()
message: ""
name: "Error"
toString: ƒ toString()
__proto__: Object
text: ""sent"2020-12-27 13:33:10 SERVER -&gt; CLIENT: 220 smtp.gmail.com ESMTP s6sm56953899wro.79 - gsmtp<br>↵2020-12-27 13:33:10 CLIENT -&gt; SERVER: EHLO 127.0.0.1<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 250-smtp.gmail.com at your service, [2a00:6920:f0ef:dc7f:e42f:c0d7:fb12:ac22]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: STARTTLS<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 220 2.0.0 Ready to start TLS<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: EHLO 127.0.0.1<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 250-smtp.gmail.com at your service, [2a00:6920:f0ef:dc7f:e42f:c0d7:fb12:ac22]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: AUTH LOGIN<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 334 VXNlcm5hbWU6<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: [credentials hidden]<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 334 UGFzc3dvcmQ6<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: [credentials hidden]<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 235 2.7.0 Accepted<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: MAIL FROM:&lt;[email protected]&gt;<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 250 2.1.0 OK s6sm56953899wro.79 - gsmtp<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: RCPT TO:&lt;[email protected]&gt;<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 250 2.1.5 OK s6sm56953899wro.79 - gsmtp<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: DATA<br>↵2020-12-27 13:33:11 SERVER -&gt; CLIENT: 354  Go ahead s6sm56953899wro.79 - gsmtp<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: Date: Sun, 27 Dec 2020 13:33:10 +0000<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: To: [email protected]<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: From: &quot;[email protected]&quot; &lt;[email protected]&gt;<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: Subject: Password reset email for account: [email protected]<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: Message-ID: &lt;[email protected]&gt;<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: X-Mailer: PHPMailer 6.1.7 (https://github.com/PHPMailer/PHPMailer)<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: MIME-Version: 1.0<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: Content-Type: text/html; charset=iso-8859-1<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: <br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: Your confirmation code to reset your password is: 805919<br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: <br>↵2020-12-27 13:33:11 CLIENT -&gt; SERVER: .<br>↵2020-12-27 13:33:12 SERVER -&gt; CLIENT: 250 2.0.0 OK  1609075990 s6sm56953899wro.79 - gsmtp<br>↵2020-12-27 13:33:12 CLIENT -&gt; SERVER: QUIT<br>↵2020-12-27 13:33:12 SERVER -&gt; CLIENT: 221 2.0.0 closing connection s6sm56953899wro.79 - gsmtp<br>↵"
__proto__:
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ ()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()
headers: HttpHeaders
lazyInit: () => {…}
lazyUpdate: null
normalizedNames: Map(0) {}
__proto__: Object
message: "Http failure during parsing for http://127.0.0.1/interactive-contact-list/sendEmail.php"
name: "HttpErrorResponse"
ok: false
status: 200
statusText: "OK"
url: "http://127.0.0.1/interactive-contact-list/sendEmail.php"
__proto__: HttpResponseBase
constructor: class HttpErrorResponse
__proto__: Object

나는 print json_encode ( "")을 사용하여 PHP에서 ionic으로 응답을 보내고 있는데, 이것은 이것을 제외한 모든 곳에서 작동합니다.

싱크로

문제는 다음과 같습니다.

$mail->SMTPDebug = 2;

PHPMailer의 디버그 출력은 JSON과 호환되지 않으므로 끄십시오.

$mail->SMTPDebug = 0;

물론 자신의 디버그 출력 콜백을 삽입하여 JSON으로 변환 할 수 있지만 이것이 원하는 작업인지 의심 스럽습니다.

이와 같은 것을 디버깅 할 때는 항상 브라우저 개발 도구에서 서버로부터받는 실제 응답을 살펴보십시오. 만약 살펴 보았다면 응답에서 PHPMailer 디버그 출력을 보았을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP를 사용하여 sendgrid를 통해 메일을 보내는 동안 응답 받기

분류에서Dev

mailgun의 이메일 보내기 API에 게시 요청을하는 동안은 자바 웹 응용 프로그램을 사용하여 오류를 보여줍니다

분류에서Dev

Win Message를 사용하여 Cstring을 보내고 응답 받기

분류에서Dev

tensorflow를 사용하는 동안 오류 메시지 받기

분류에서Dev

Laravel을 사용하는 동안 메일 보내기 오류

분류에서Dev

Ping.SendAsync를 사용하여 오랫동안 IP 주소에서 응답을받을 수 없었는지 확인할 수 있습니까?

분류에서Dev

ImgurAPI를 사용하는 동안 "Permission Denied"응답 받기

분류에서Dev

Typescript에서 Generic을 사용하는 동안 오류 메시지 받기

분류에서Dev

stepfunctions에서 오류를 포착하는 동안 sqs에 메시지 보내기

분류에서Dev

비동기 및 onPostExecute를 사용하여 PHP에 값을 보내고 응답을 얻는 방법

분류에서Dev

java.util.List를 포함하는 응답을 처리하는 동안 Camel 경로에서 ClassCastException 받기

분류에서Dev

PHPmailer를 사용하여 메일 보내기가 라이브 서버에서 작동하지 않습니다.

분류에서Dev

$ .post를 사용하여 완료 및 실패 함수와 함께 데이터를 PHP로 보내고받는 동안 JSON 응답을 읽는 방법

분류에서Dev

wadeshuler / yii2-sendgrid를 사용하여 sendgrid 이메일을 보내는 동안 잘못된 요청 오류

분류에서Dev

execute ()를 사용하여 Retrofit을 사용하여 오류 응답에서 본문 가져 오기

분류에서Dev

DKIM 키를 사용하여 phpmailer에서 메일 보내기

분류에서Dev

WCF-프로덕션 서버 전용-HTTP 응답을받는 동안 오류가 발생했습니다.

분류에서Dev

POST API 호출을 만드는 비동기 메서드에서 응답, 본문 및 오류 받기

분류에서Dev

한 모듈에서 다른 모듈로 가져 오기를 사용하여 GET API에서 얻은 응답 데이터를 내보내는 방법

분류에서Dev

내보내기 서명 된 애플리케이션 Android를 사용하여 APK를 빌드하는 동안 ProGuard 오류

분류에서Dev

mandrillApp API를 사용하여 대량 메일을 보내는 동안 응답으로 사용자 정의 데이터를 받으려면 어떻게해야합니까?

분류에서Dev

Android에서 Volley를 사용하여 HTTP GET 요청을 보내는 동안 오류가 발생했습니다.

분류에서Dev

phpMailer를 사용하여 PHP에서 이메일을 보내려고 할 때 SMTP 연결 오류를 해결하는 방법은 무엇입니까? POP / IMAP

분류에서Dev

중포 기지와 안드로이드 스튜디오 Gradle을 동기화 오류 : 응답 204 : 없음 내용에는 내용이 없습니다

분류에서Dev

이메일 본문에 특수 문자를 보내는 동안 오류가 발생하는 $ .ajax Post 메서드

분류에서Dev

WepAPi를 사용하여 메일을 보내는 동안에서 변경

분류에서Dev

데이터를 게시하는 동안 웹 응답에서 내부 서버 오류가 발생하지만 브라우저를 사용하여 작동합니다. C #

분류에서Dev

Axios를 사용하는 동안 오류가 발생했지만 Postman에서 올바른 응답

분류에서Dev

더 작은 크기의 JSON 응답 후 UITableView를 업데이트하는 동안 오류가 발생합니까?

Related 관련 기사

  1. 1

    PHP를 사용하여 sendgrid를 통해 메일을 보내는 동안 응답 받기

  2. 2

    mailgun의 이메일 보내기 API에 게시 요청을하는 동안은 자바 웹 응용 프로그램을 사용하여 오류를 보여줍니다

  3. 3

    Win Message를 사용하여 Cstring을 보내고 응답 받기

  4. 4

    tensorflow를 사용하는 동안 오류 메시지 받기

  5. 5

    Laravel을 사용하는 동안 메일 보내기 오류

  6. 6

    Ping.SendAsync를 사용하여 오랫동안 IP 주소에서 응답을받을 수 없었는지 확인할 수 있습니까?

  7. 7

    ImgurAPI를 사용하는 동안 "Permission Denied"응답 받기

  8. 8

    Typescript에서 Generic을 사용하는 동안 오류 메시지 받기

  9. 9

    stepfunctions에서 오류를 포착하는 동안 sqs에 메시지 보내기

  10. 10

    비동기 및 onPostExecute를 사용하여 PHP에 값을 보내고 응답을 얻는 방법

  11. 11

    java.util.List를 포함하는 응답을 처리하는 동안 Camel 경로에서 ClassCastException 받기

  12. 12

    PHPmailer를 사용하여 메일 보내기가 라이브 서버에서 작동하지 않습니다.

  13. 13

    $ .post를 사용하여 완료 및 실패 함수와 함께 데이터를 PHP로 보내고받는 동안 JSON 응답을 읽는 방법

  14. 14

    wadeshuler / yii2-sendgrid를 사용하여 sendgrid 이메일을 보내는 동안 잘못된 요청 오류

  15. 15

    execute ()를 사용하여 Retrofit을 사용하여 오류 응답에서 본문 가져 오기

  16. 16

    DKIM 키를 사용하여 phpmailer에서 메일 보내기

  17. 17

    WCF-프로덕션 서버 전용-HTTP 응답을받는 동안 오류가 발생했습니다.

  18. 18

    POST API 호출을 만드는 비동기 메서드에서 응답, 본문 및 오류 받기

  19. 19

    한 모듈에서 다른 모듈로 가져 오기를 사용하여 GET API에서 얻은 응답 데이터를 내보내는 방법

  20. 20

    내보내기 서명 된 애플리케이션 Android를 사용하여 APK를 빌드하는 동안 ProGuard 오류

  21. 21

    mandrillApp API를 사용하여 대량 메일을 보내는 동안 응답으로 사용자 정의 데이터를 받으려면 어떻게해야합니까?

  22. 22

    Android에서 Volley를 사용하여 HTTP GET 요청을 보내는 동안 오류가 발생했습니다.

  23. 23

    phpMailer를 사용하여 PHP에서 이메일을 보내려고 할 때 SMTP 연결 오류를 해결하는 방법은 무엇입니까? POP / IMAP

  24. 24

    중포 기지와 안드로이드 스튜디오 Gradle을 동기화 오류 : 응답 204 : 없음 내용에는 내용이 없습니다

  25. 25

    이메일 본문에 특수 문자를 보내는 동안 오류가 발생하는 $ .ajax Post 메서드

  26. 26

    WepAPi를 사용하여 메일을 보내는 동안에서 변경

  27. 27

    데이터를 게시하는 동안 웹 응답에서 내부 서버 오류가 발생하지만 브라우저를 사용하여 작동합니다. C #

  28. 28

    Axios를 사용하는 동안 오류가 발생했지만 Postman에서 올바른 응답

  29. 29

    더 작은 크기의 JSON 응답 후 UITableView를 업데이트하는 동안 오류가 발생합니까?

뜨겁다태그

보관