【问题标题】:Sending email works on test but not on production system发送电子邮件适用于测试但不适用于生产系统
【发布时间】:2014-05-23 14:34:48
【问题描述】:

在我的模型中,一旦创建了用户,我就会发送一封电子邮件:

模型/用户.php:

<?php
App::uses('AppModel', 'Model');
App::uses('CakeEmail', 'Network/Email');

class User extends AppModel {
    ...
    private function sendWelcomeMail($name, $email, $password) {
        $Email = new CakeEmail('smtp');
        $Email->viewVars(array('name' => $name, 'password' => $password));
        $Email->template(('welcome'));
        $Email->emailFormat('html');
        $Email->from(array('info@staycomputer.de' => 'Stay Computer'));
        $Email->to($email);
        $Email->subject('Stay Serviceordersystem: Willkommen / Welcome');

        $Email->send();
    }
}

配置/email.php:

public $smtp = array(
    'transport' => 'Smtp',
    'from' => array('info@***.de' => 'Stay Computer'),
    'host' => '***',
    'port' => 25,
    'timeout' => 30,
    'username' => '***',
    'password' => '***',
    'client' => null,
    'log' => false,
    //'charset' => 'utf-8',
    //'headerCharset' => 'utf-8',
);

它在我的测试系统上运行良好,但在生产系统(1&1 虚拟主机)上运行良好:

错误:发生内部错误。

根据error.log:

Error: [SocketException] Connection timed out Request URL ...

15:52:36 Error: Fatal Error (256): [CakeException] Unknown status code #0 /homepage/30/d20974062/htdocs/StaywebDB/serviceordersystem/lib/Cake/Error/ExceptionRenderer.php(212) ...

只有 1 个区别: 在生产系统中,我使用内置的重写功能。

【问题讨论】:

  • 在生产环境中检查您的error.log,看看抛出了什么样的错误
  • 尝试 ir 与 gmail 配置,如果它有效,那么问题是你的 smtp 配置
  • 或者除了@IsaacRajaei 评论之外,也可以试试 CakePHP 中的 sendmail

标签: cakephp cakephp-2.3 cakephp-model cakeemail


【解决方案1】:

切换到 gmail 就像一个魅力。谢谢推荐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2018-01-20
    • 2015-06-13
    • 2011-03-03
    • 2014-03-12
    • 2013-07-28
    • 1970-01-01
    相关资源
    最近更新 更多