使用gmail从localhost发送电子邮件

时间:2015-03-26 01:20:29

标签: php email xampp cakephp-3.0

我正在使用cakephp 3.0开发一个网站,并且我尝试使用gmail服务器从我的localhost(xampp)发送确认电子邮件。我可以确定我的控制器功能已执行但没有任何反应,没有电子邮件,没有错误,没有日志等。

我看了here您无法从localhost发送电子邮件(因此尝试使用gmail发送电子邮件)

此处我的配置位于app.php

'EmailTransport' => [
    'default' => [
        'className' => 'Mail',
        // The following keys are used in SMTP transports
        'host' => 'smtp.gmail.com',
        'port' => 587,
        'timeout' => 30,
        'username' => 'my_email@gmail.com',
        'password' => 'password',
        'client' => null,
        'tls' => true,
    ],
],

'Email' => [
    'default' => [
        'transport' => 'default',
        'from' => 'my_email@gmail.com',
    ],
],

这是我尝试发送电子邮件的功能。

public function send()
{
    $email = new Email('default');
    $email->to('other_email@gmail')
          ->subject('About')
          ->message('blablabla');

    if($email->send())
    {
        return $this->render('confirmation');
    }
}

我可以肯定地说这个代码已经执行了,因为在我按下发送后会显示确认视图。

发送电子邮件我错过了什么?

2 个答案:

答案 0 :(得分:0)

如果没有配备邮件服务器的服务器,您将无法发送电子邮件。不幸的是,这不包括在xampp中。如果您尝试使用"来自"从Gmail发送电子邮件。标题,我认为你误解了" From"参数。 " From"实际上只有接收方才能结束。

示例:

如果你有:

$headers = "From: webmaster@example.com";

接收方将看到该电子邮件是从webmaster@example.com发送的。但是,电子邮件实际上仍然是从您的邮件服务器发送的(因此在localhost上,您将无法这样做,因为它没有邮件服务器)。

有关使用PHP发送电子邮件的更多信息,请转到http://www.w3schools.com/php/func_mail_mail.asp

答案 1 :(得分:0)

尝试

 'EmailTransport' => [
    'default' => [
        'className' => 'Smtp',
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'timeout' => 30,
        'username' => 'my_email@gmail.com',
        'password' => 'password',
        'tls' => true, // This may not be needed
    ],
],