Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CakePHP 3发送电子邮件时出现错误500_Php_Email_Smtp_Cakephp 3.0 - Fatal编程技术网

使用CakePHP 3发送电子邮件时出现错误500

使用CakePHP 3发送电子邮件时出现错误500,php,email,smtp,cakephp-3.0,Php,Email,Smtp,Cakephp 3.0,我正在用CakePHP3开发一个小网页。它具有一个非常简单的联系表单,可以使用SMTP服务器从1和1.es发送电子邮件 这是我在config/app.php上的传输配置: 'EmailTransport' => [ 'smtp' => [ 'className' => 'Smtp', // The following keys are used in SMTP transports 'host' => 'smtp.1

我正在用CakePHP3开发一个小网页。它具有一个非常简单的联系表单,可以使用SMTP服务器从1和1.es发送电子邮件

这是我在config/app.php上的传输配置:

'EmailTransport' => [
    'smtp' => [
        'className' => 'Smtp',
        // The following keys are used in SMTP transports
        'host' => 'smtp.1and1.es',
        'port' => 587,
        'timeout' => 30,
        'username' => 'myuser@mydomain.es',
        'password' => 'mypassword',
        'client' => null,
        'tls' => true,
        'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
    ],
],
它在本地开发服务器(Ubuntu14.04上的Xampp)运行良好:我正在接收所有电子邮件。但在使用上述相同配置的生产服务器(1和1共享服务器)上运行时,会抛出500内部服务器错误。两台服务器上的PHP版本相同

我在Stackoverflow发现了类似的问题,但没有任何帮助。顺便说一下,我无法访问服务器中的apache错误日志

任何帮助都将不胜感激。提前谢谢

编辑:

我刚刚发现Cakephp error.log文件包含一些相关信息:

2016-10-09 22:18:38 Error: [Cake\Network\Exception\SocketException] Connection timed out
Request URL: /home/index
Referer URL: http://monitomolon.es/
Stack Trace:
#0 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(207): Cake\Network\Socket->connect()
#1 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Mailer/Transport/SmtpTransport.php(162): Cake\Mailer\Transport\SmtpTransport->_connect()
#2 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Mailer/Email.php(1344): Cake\Mailer\Transport\SmtpTransport->send(Object(Cake\Mailer\Email))
#3 /homepages/14/d393557898/htdocs/monitomolon/src/Form/ContactForm.php(56): Cake\Mailer\Email->send('Nombre: Diego A...')
#4 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Form/Form.php(179): App\Form\ContactForm->_execute(Array)
#5 /homepages/14/d393557898/htdocs/monitomolon/src/Controller/HomeController.php(13): Cake\Form\Form->execute(Array)
#6 [internal function]: App\Controller\HomeController->index()
#7 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Controller/Controller.php(435): call_user_func_array(Array, Array)
#8 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(122): Cake\Controller\Controller->invokeAction()
#9 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(96): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\HomeController))
#10 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/BaseApplication.php(83): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#11 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#12 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(53): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#13 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#14 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#15 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#16 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(81): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#17 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#18 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#19 /homepages/14/d393557898/htdocs/monitomolon/vendor/cakephp/cakephp/src/Http/Server.php(92): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#20 /homepages/14/d393557898/htdocs/monitomolon/webroot/index.php(37): Cake\Http\Server->run()
#21 {main}

嗯,1和1.es客户服务通知我,smtp服务器仅供电子邮件客户端使用,因此在我的共享服务器中禁止在脚本中使用。因此,我通过使用本机PHP函数mail()和默认的CakePHP传输解决了这个问题。通过以下方式简单定义
EmailTransport

'EmailTransport' => [
    'mail' => [
        'className' => 'Mail',
    ],
], 

如果您无法找到/访问错误,或者无法将问题缩小到数组的某个部分之外,我们将无法帮助您。那么http服务器错误日志文件会说什么?我们当然不能告诉您…因此,我预期的连接超时可能意味着您的1和1主机正在阻止SMTP连接。谢谢,@JonStirling。但是,为什么它能在我的本地主机上工作而在远程服务器上失败呢?@Diego,可能是1和1阻塞了连接。我很确定1和1不会运行您的个人计算机;)你能详细介绍一下如何解决这个问题吗?我对1和1有同样的问题?更新的答案,@TheDevMan。您根本不需要任何其他详细信息。