【发布时间】:2015-08-22 06:06:00
【问题描述】:
我正在尝试通过 CakePHP 发送邮件,但我总是收到“连接超时”消息。我使用了两种不同的配置:gmail 和 1and1,但结果是一样的。
这是我的email.php 文件:
public $oneandone = array(
'host' => 'ssl://smtp.1and1.es',
'port' => 465,
'username' => 'my-address@my-domain.com',
'password' => '*****',
'transport' => 'Smtp',
'timeout' => 1);
public $gmail = array(
'host' => 'smtp.gmail.com',
'port' => 587,
'username' => 'my-address@gmail.com',
'password' => '****',
'timeout' => 1,
'tls' => true,
'transport' => 'Smtp');
这是我在UsersController.php 文件中的提醒功能:
public function remind() {
App::uses('CakeEmail', 'Network/Email');
$this->set('url', $this->referer());
if ($this->request->is('post')) {
$Email = new CakeEmail('gmail');
$Email->from(array('my-address@my-domain.com' => 'Staff'));
$Email->to('destiny@hotmail.com');
$Email->subject('Password reminder');
$Email->send('Here is your current password: xxxxxx');
return $this->redirect(array('action' => 'login'));
}
}
我得到的错误是
if (!$this->_socket->connect()) {
throw new SocketException(__d('cake_dev', 'Unable to connect to SMTP server.'));
所以我不知道为什么我无法连接。我修改了一些参数,例如tls、ssl,但没有结果。
在同一台服务器(1and1)中,我可以使用标准的mail() 函数发送电子邮件,所以我认为这不是PHP 配置的问题。如果我错了,请纠正我。
一些想法将不胜感激!
【问题讨论】: