SwiftMailer+Gmail-无法发送电子邮件


SwiftMailer + Gmail - Cannot send email

我无法连接Gmail SMTP服务器。

外观:

$transport = Swift_SmtpTransport::newInstance()
            ->setHost('smtp.gmail.com')
            ->setPort(465)
            ->setEncryption('ssl')
            ->setUsername('email@gmail.com')
            ->setPassword('mypasss');
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance('Contato via Site')
            ->setFrom(array($email => $de))
            ->setTo(array($destinatario => 'Agência Linka'))
            ->setBody($corpo_mensagem, 'text/html')
            ->setCharset('UTF-8');
    $mailer->send($message);

然后我得到了这个:

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [ #0]' in ...

有人经历过这种情况吗?

首先使用您的帐户登录,并在的新选项卡中打开

https://www.google.com/settings/u/1/security/lesssecureapps
https://accounts.google.com/b/0/DisplayUnlockCaptcha
https://security.google.com/settings/security/activity?hl=en&pli=1

您需要确保您的使用电子邮件id已启用不太安全的应用程序。

您可以使用tls而不是ssl证书发送邮件,如下所示:

    $transport =  Swift_SmtpTransport::newInstance('smtp.gmail.com', 587,'tls')
                            ->setUsername('email@gmail.com')
                            ->setPassword('mypasss');
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance('Contato via Site')
            ->setFrom(array($email => $de))
            ->setTo(array($destinatario => 'Agência Linka'))
            ->setBody($corpo_mensagem, 'text/html')
            ->setCharset('UTF-8');
    $mailer->send($message);

Gmail已经改变了他的政策,所以yuo需要采取额外的特殊步骤来实现这一点,我可以在这里为您解释,但您可以看看这个答案,它解释了您需要采取的行动:

使用php';s带有gmail 的swiftmailer