yii2 邮件程序 smtp 连接被拒绝
yii2 mailer smtp connection refused
在配置文件中设置我的 smtp 邮件程序时,它工作正常。但是,如果我手动创建 SMPT 邮件程序,它将失败(连接被拒绝)。有人可以帮忙吗?
Yii2 配置文件:
'components'=[
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'email@gmail.com',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
我的控制器中的以下代码不起作用:
$mailer = new \yii\swiftmailer\Mailer();
$mailer->transport = new \Swift_SmtpTransport();
$mailer->transport
->setHost('smtp.gmail.com')
->setPort(587)
->setEncryption('tls');
$mailer->transport->setUsername('email@gmail.com');
$mailer->transport->setPassword('password');
我收到一条错误消息:连接被拒绝#111
我在 ssl 上尝试了端口 465,但我收到了相同的消息。
我这样做的主要原因是我有不同的客户帐户,每个帐户都有自己的 smtp。因此,我需要每个客户一个帐户,我似乎无法通过配置文件来做到这一点。
非常感谢您的帮助。
我刚试过它对我有用,我按照下面的方法做了
'components'=[
'mailer' => [ //Your default mailer
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'email@gmail.com',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
],
'mailer2' => [ //Your custom mailer
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'new_email@gmail.com',
'password' => 'new_password',
'port' => 'new_port587',
'encryption' => 'new_tls',
],
]
以下为默认配置
Yii::$app->mailer->compose()
->setFrom('info@gmail.com')
->setTo('xxx@gmail.com')
->setSubject('Subject')
->setTextBody('Plain text content')
->setHtmlBody("Hello")
->send();
随后是自定义邮件程序配置
Yii::$app->mailer2->compose()
->setFrom('info@gmail.com')
->setTo('xxx@gmail.com')
->setSubject('Subject')
->setTextBody('Plain text content')
->setHtmlBody("Hello")
->send();
创建一个组件是最快的解决方案,否则,您可以使用参数存储配置,并在需要时调用。
在配置文件中设置我的 smtp 邮件程序时,它工作正常。但是,如果我手动创建 SMPT 邮件程序,它将失败(连接被拒绝)。有人可以帮忙吗?
Yii2 配置文件:
'components'=[
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'email@gmail.com',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
我的控制器中的以下代码不起作用:
$mailer = new \yii\swiftmailer\Mailer();
$mailer->transport = new \Swift_SmtpTransport();
$mailer->transport
->setHost('smtp.gmail.com')
->setPort(587)
->setEncryption('tls');
$mailer->transport->setUsername('email@gmail.com');
$mailer->transport->setPassword('password');
我收到一条错误消息:连接被拒绝#111
我在 ssl 上尝试了端口 465,但我收到了相同的消息。
我这样做的主要原因是我有不同的客户帐户,每个帐户都有自己的 smtp。因此,我需要每个客户一个帐户,我似乎无法通过配置文件来做到这一点。
非常感谢您的帮助。
我刚试过它对我有用,我按照下面的方法做了
'components'=[
'mailer' => [ //Your default mailer
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'email@gmail.com',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
],
'mailer2' => [ //Your custom mailer
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'new_email@gmail.com',
'password' => 'new_password',
'port' => 'new_port587',
'encryption' => 'new_tls',
],
]
以下为默认配置
Yii::$app->mailer->compose()
->setFrom('info@gmail.com')
->setTo('xxx@gmail.com')
->setSubject('Subject')
->setTextBody('Plain text content')
->setHtmlBody("Hello")
->send();
随后是自定义邮件程序配置
Yii::$app->mailer2->compose()
->setFrom('info@gmail.com')
->setTo('xxx@gmail.com')
->setSubject('Subject')
->setTextBody('Plain text content')
->setHtmlBody("Hello")
->send();
创建一个组件是最快的解决方案,否则,您可以使用参数存储配置,并在需要时调用。