【问题标题】:Zend_Log with mailZend_Log 与邮件
【发布时间】:2009-07-22 12:18:03
【问题描述】:

有没有人用 Zend_Log 成功发送邮件(SMTP GOOGLE)。我找到了这个http://framework.zend.com/manual/en/zend.log.writers.html 第 32.2.4 章。写入电子邮件,但默认情况下它使用mail(),但我想使用SMTP。所以到目前为止我的代码看起来像这样:

  $mailconf = array('ssl'=>'ssl',
            'auth' => 'login',
                    'username' => 'mymail@gmail.com',
                    'password' => 'mypass',
                    'port'=>'465');     
    $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $mailconf);                


    $mail = new Zend_Mail();
    $mail->setFrom('from.website@example.com')
         ->addTo('mysecondmail@site.com');

    $writer = new Zend_Log_Writer_Mail($mail);
    // On fixe le sujet du mail
    $writer->setSubjectPrependText('Important Log Events');

    // Only email warning level entries and higher.
    $writer->addFilter(Zend_Log::WARN);

    $loggerZendMail = new Zend_Log();
    $loggerZendMail->addWriter($writer);

    $loggerZendMail->log('unable to connect to database',Zend_Log::WARN);

我收到此错误:

致命错误:在 C:\wamp\www\zf_log\Zend\Log\Writer\Mail.php:256 堆栈跟踪:#0 C:\wamp\ 中未捕获的异常“Zend_Log_Exception”和消息“无法发送邮件” www\zf_log\Zend\Log.php(84): Zend_Log_Writer_Mail->shutdown() #1 C:\wamp\www\zf_log\Zend\Controller\Action.php(512): Zend_Log->__destruct() #2 C :\wamp\www\zf_log\Zend\Controller\Action.php(512): IndexController->indexAction() #3 C:\wamp\www\zf_log\Zend\Controller\Dispatcher\Standard.php(288): Zend_Controller_Action ->dispatch('indexAction') #4 C:\wamp\www\zf_log\Zend\Controller\Front.php(945): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #5 C:\ wamp\www\zf_log\index.php(30): Zend_Controller_Front->dispatch() #6 {main} 在 C:\wamp\www\zf_log\Zend\Log\Writer\Mail.php 第 256 行抛出

有什么建议吗?

【问题讨论】:

    标签: zend-framework


    【解决方案1】:

    您需要设置 Zend_Mail 使用的传输方式

    例子:

    Zend_Mail::setDefaultTransport($transport);

    【讨论】:

      【解决方案2】:

      我会检查服务器上是否启用了 SMTP。

      【讨论】:

        【解决方案3】:

        使用 TLS 代替 SSL 还检查端口 587 是否有效

        所以下面的配置应该可以工作

        $mailconf = array('ssl'=>'tls', 'auth' => 'login', 'username' => 'mymail@gmail.com', 'password' => 'mypass', 'port'=>'587'); 
        

        【讨论】:

          猜你喜欢
          • 2010-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-22
          • 1970-01-01
          • 2023-04-04
          • 1970-01-01
          相关资源
          最近更新 更多