首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器上的CakeEmail问题

服务器上的CakeEmail问题
EN

Stack Overflow用户
提问于 2013-12-15 13:25:52
回答 1查看 3.3K关注 0票数 2

我将cakeEmail用于简单的表单,并且在本地主机上工作得很好,但在服务器(主机)上,它显示了以下错误:

代码语言:javascript
复制
CONNECTION REFUSED
Error: An Internal Error Has Occurred.
Stack Trace

CORE/Cake/Network/Email/SmtpTransport.php line 101 → CakeSocket->connect()
CORE/Cake/Network/Email/SmtpTransport.php line 61 → SmtpTransport->_connect()
CORE/Cake/Network/Email/CakeEmail.php line 1124 → SmtpTransport->send(CakeEmail)
APP/Controller/ProductsController.php line 26 → CakeEmail->send(string)
[internal function] → ProductsController->email()
CORE/Cake/Controller/Controller.php line 490 → ReflectionMethod->invokeArgs(ProductsController, array)
CORE/Cake/Routing/Dispatcher.php line 187 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 162 → Dispatcher->_invoke(ProductsController, CakeRequest, CakeResponse)
APP/webroot/index.php line 111 → Dispatcher->dispatch(CakeRequest, CakeResponse)

我不知道问题在哪里。

我的Config/email.php:

代码语言:javascript
复制
public $default = array(
        'transport' => 'Smtp',
        'from' => array('info@olvi.cz' => 'My Site'),
        'host' => 'smtp.savana.cz',
        'port' => 25,
        'timeout' => 30,
        'username' => 'info@olvi.cz',
        'password' => '****',
        'client' => null,
        'log' => false,
);

我的ProductsController.php:

代码语言:javascript
复制
public function email(){
    App::uses('CakeEmail', 'Network/Email');
    if ($this->request->is('post')) {
        $email = new CakeEmail('default');
        $email->from(array('info@olvi.cz' => $this->request->data['Email']['name']));
        $email->to($this->request->data['Email']['sender']);
        $email->subject($this->request->data['Email']['name']);
        $email->send($this->request->data['Email']['message']);
        $this->Session->setFlash(__('Zpráva byla odeslána.'));
    }
}

并查看email.ctp:

代码语言:javascript
复制
echo $this->Form->create('Email');
echo $this->Form->input('name',array('label' => 'Jméno', 'required' => 'required'));
echo $this->Form->input('sender',array('type' => 'email','label' => 'Váš e-mail', 'required' => 'required'));
echo $this->Form->input('message', array('type' => 'textarea', 'label' => 'Zpráva', 'required' => 'required'));
echo $this->Form->submit('Odeslat', array('id' => 'button', 'div' => false));
echo $this->Form->end();

我试图调用我的主机帮助链接,他们不知道,但说PHPMailer工作。我是cakePHP的新手,所以在服务器上移动它有问题。谁能帮个忙吗?我真的深陷于这个问题中。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 06:21:36

可能的原因:

  1. 您正在运行的服务器在其IP地址上有垃圾邮件块吗?很可能SMTP服务器不允许来自宿主服务器的连接。因此,错误CONNECTION REFUSED。这不是运行代码的服务器上的东西,而是要登录到的服务器。
  2. SMTP凭据不正确。也许有什么东西不见了。尝试使用这些凭据从另一个位置连接,以查看您是否能够实际连接。
  3. 正在运行的同一主机的SMTP凭据。也许主机不允许到SMTP的出站连接来阻止它们的服务器被用作垃圾邮件发送机器。

可能的解决方案

如果所有可能的原因都不是罪魁祸首,那么配置可能会出现问题。你有这个:

代码语言:javascript
复制
public $default = array(
    'transport' => 'Smtp',
    'from' => array('info@olvi.cz' => 'My Site'),
    'host' => 'smtp.savana.cz',
    'port' => 25,
    'timeout' => 30,
    'username' => 'info@olvi.cz',
    'password' => '****',
    'client' => null,
    'log' => false,
);

试着简化它并将其更改为最基本的最小值:

代码语言:javascript
复制
public $default = array(
    'transport' => 'Smtp',
    'host' => 'smtp.savana.cz',
    'port' => 25,
    'username' => 'info@olvi.cz',
    'password' => '****',
);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20595043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档