为了账号安全,请及时绑定邮箱和手机立即绑定

SwiftMailer 测试用户名和密码

SwiftMailer 测试用户名和密码

PHP
宝慕林4294392 2021-11-26 17:46:57
我真的不知道这是否是关于SwiftMailer或mailtrap.io但问题是当我尝试建立到所述服务的 SMTP 连接时 ( mailtrap.io) 我从来没有收到任何错误,即使我不使用任何用户名或密码。不使用任何用户名或密码时,我不应该收到任何身份验证错误吗?还是我这样做是错误的?这是我在将其存储到.env文件中之前用于测试是否可以建立动态连接的方法。/** * E-mail configuration * * @param Request $request * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */public function postEmailConfiguration(Request $request){    # Try connecting to the SMTP    try {        $encryption = $request->input('encryption');        if ($encryption == 'null') {            $encryption = NULL;        }        $transport = new Swift_SmtpTransport($request->input('host'), $request->input('port'), $encryption);        $transport->setUsername($request->input('username'));        $transport->setPassword($request->input('password'));        $mailer = new Swift_Mailer($transport);        $mailer->getTransport()->start();        # Update .env file        $this->setEnvironmentValues([            'MAIL_HOST' => $request->input('host'),            'MAIL_PORT' => $request->input('port'),            'MAIL_USERNAME' => $request->input('username'),            'MAIL_PASSWORD' => $request->input('password'),            'MAIL_ENCRYPTION' => $request->input('encryption')        ]);        return redirect()->back()->with('success', 'Connection to SMTP establised and saved!');    }    # Could not connect to SMTP    catch (Swift_TransportException $e) {        return redirect()->back()->with('error', 'Could not connect to SMTP server.<br>Error: ' . $e->getMessage());    }    # Could not connect to SMTP    catch (Exception $e) {        return redirect()->back()->with('error', 'Could not connect to SMTP server.<br>Error: ' . $e->getMessage());    }}
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

我在 Symfony 4.4 上使用SwiftMailer 6测试了与 Gmail 的连接,下面的代码(与您的类似)对我来说按预期工作。


因此,如果您想检查是否在没有消息发送的情况下建立了连接,请使用下一个代码:


public function checkConnection()

{

    try {

        // Create the Transport

        $transport = (new \Swift_SmtpTransport(

            'smtp.gmail.com',

            '587',

            'tls'

        ))

            ->setUsername('your.username@gmail.com')

            ->setPassword('yourSuperPassword');

        // Create the Mailer using your created Transport

        $mailer = new \Swift_Mailer($transport);


        $mailer->getTransport()->start();


        return true;

    } catch (\Swift_TransportException $e) {

        return $e->getMessage();

    } catch (\Exception $e) {

        return $e->getMessage();

    }

}

否则,它会抛出异常:


Swift_TransportException:

Failed to authenticate on SMTP server with username "your.username@gmail.com" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at

535 5.7.8  https://support.google.com/mail/?p=BadCredentials z7sm3020898ljj.98 - gsmtp". 

Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at

535 5.7.8  https://support.google.com/mail/?p=BadCredentials z7sm3020898ljj.98 - gsmtp". 

Authenticator XOAUTH2 returned Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at

535 5.7.8  https://support.google.com/mail/?p=BadCredentials z7sm3020898ljj.98 - gsmtp".


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信