PHPMailer, использующий SMTP oauth2 gmail - как предотвратить отправку электронной почты в отправленную папку? - PullRequest
0 голосов
/ 22 февраля 2019

Я использую аутентификацию Google XOAuth2 SMTP с помощью клиентской библиотеки League OAuth2.Я не хочу хранить отправленные письма в папке отправленных Gmail.Письмо успешно отправлено через учетную запись Gmail и отображается в отправленных элементах, но я не хочу показывать в отправленных элементах.Дайте мне знать, если есть метод.

Вот мой сценарий.

 $mail = new PHPMailer\PHPMailer\PHPMailer();
    try {
        $mail->SMTPDebug = 2; 
        $mail->isSMTP();                                     
        $mail->Host = 'smtp.gmail.com';             
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'tls';                           
        $mail->AuthType = 'XOAUTH2';
        $mail->Port = 587;                                   

        $email = '***@****.com';
        $clientId = '********************************************.apps.googleusercontent.com';
        $clientSecret = '*******************';
        $refreshToken = '*********************************************';
        $provider = new League\OAuth2\Client\Provider\Google(
            [
                'clientId' => $clientId,
                'clientSecret' => $clientSecret,
            ]
        );
        $mail->setOAuth(
            new PHPMailer\PHPMailer\OAuth(
                [
                    'provider' => $provider,
                    'clientId' => $clientId,
                    'clientSecret' => $clientSecret,
                    'refreshToken' => $refreshToken,
                    'userName' => $email,
                ]
            )
        );

        //Recipients
        $mail->setFrom($FromEmail,$FromName);

        if(is_array($to)){
            foreach($to as $eachEmail){
                $mail->addAddress($eachEmail);
            }
        }else{
            $mail->addAddress($to);
        }

        if($replyTo != ''){
            $mail->addReplyTo($replyTo);
        }else{
            $mail->addReplyTo($FromEmail);
        }

        if($bcc != ''){
            $mail->addBCC($bcc);
        }

        if(is_array($attachments) AND !empty($attachments)){
            foreach($attachments as $File){
                $mail->addAttachment($File); 
            }
        }else if($attachments != ''){
            $mail->addAttachment($attachments);
        }

        //Content
        $mail->isHTML(true);
        $mail->Subject = $subject;
        $mail->Body    = $message;
        $mail->send();
        return true;
    }
    catch (Exception $e)
    {
       return false;
    }
    catch (\Exception $e)
    {
       return false;
    }

1 Ответ

0 голосов
/ 22 февраля 2019

Если оно появляется в вашей отправленной папке, это означает, что gmail помещает туда копию, а не ваш отправляющий код.Вы могли бы написать сценарий, который подключается к папке отправленных элементов через IMAP и впоследствии удаляет ее, но это не то, что делает PHPMailer.

...