CakePHP 3电子邮件传输 - 带有Gmail的Godaddy

时间:2017-04-20 02:47:08

标签: email cakephp

我不知道如何解决这个问题。它在本地工作,但不在我的godaddy服务器上。我在哪里可以获得SSL的所有变量选项

我在这里找到了一个答案,我想尝试一下 PHPMailer GoDaddy Server SMTP Connection Refused

它说我必须使用

SMTP_SERVER:smtpout.secureserver.net(或者relay-hosting.secureserver.net)

SMTP_PORT:465 //或3535或80或25

SMTP_AUTH:true //始终

SMTP_Secure:' ssl' //仅在使用端口465

如何使用传输设置这些值。 我知道港口是' port'和' SMTP_SERVER'是主持人' 但是' SMTP_AUTH',' auth'?

 /*Email Transport*/
 'EmailTransport' => [
   'gmail' => [
               'host' => 'ssl://smtp.gmail.com',
           //'host' => 'relay-hosting.secureserver.net',
          //'host' => 'ASPMX.L.GOOGLE.COM',
          //'host'=>'smtpout.secureserver.net',
          'port' => 465,
          'username' => '-----@gmail.com',
          'password' => 'password',
          'className' => 'Smtp',
          'log' => true,

        ],
],
 'Email' => [
    'default' => [
        'transport' => 'gmail'

    ],

2 个答案:

答案 0 :(得分:0)

我认为您无法在阵列中设置该选项,因为SMTP Transport类在内部处理它。请检查班级的代码。

https://api.cakephp.org/3.3/source-class-Cake.Mailer.Transport.SmtpTransport.html#241-268

答案 1 :(得分:0)

这在这里工作正常。当您指定SMTP AUTHusername时,CakePHP将自动使用password。通过为host添加前缀ssl://以及相应的端口,将使用SSL。

'Email' => [
    'default' => [
        'transport' => 'gmail'
    ]
],
'EmailTransport' => [
    'gmail' => [
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'username' => 'googleUserNameWithout', //without the @gmail.com
        'password' => 'P4ssw0rd',
        'className' => 'Smtp'
    ]
]