2016-12-02 48 views
0

目前我正在用Zend Expressive开发一个应用程序。 我正在使用zend邮件发送注册邮件。调用未定义的函数Zend Mail Header iconv_mime_decode()

但是,下面的代码:

<?php 

namespace App\Mail\Service; 

use Zend\Mail\Transport\Smtp; 
use Zend\Mail\Transport\SmtpOptions; 
use Zend\Mail\Message; 

class MailService 
{ 
    private $transport; 
    private $options; 

public function __construct() { 
    $this->transport = new Smtp(); 
    $this->options = new SmtpOptions([ 
     'name' => 'XXXXXX', 
     'host' => 'XXXXXX', 
     'port' => 587, 
     'connection_class' => 'plain', 
     'connection_config' => [ 
      'username' => 'XXXXXX', 
      'password' => 'XXXXXX', 
      'ssl'  => 'tls' 
     ], 
    ]); 
    $this->transport->setOptions($this->options); 
} 

public function sendRegisterMail($email) 
{ 
    $message = new Message(); 
    $message->addFrom('XXXXXX', 'XXXXXX'); 
    $message->addTo($email); 
    $message->setEncoding("UTF-8"); 
    $message->getHeaders()->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8'); 
    $message->setSubject('Subject'); 
    $message->setBody('This is the Message Body'); 

    $this->transport->send($message); 

} 
} 

?> 

我得到上面的错误消息。 ICONV已安装并正在运行。

下面是这个函数的调用代码:

public static function mimeDecodeValue($value) 
{ 
    $decodedValue = iconv_mime_decode($value, ICONV_MIME_DECODE_CONTINUE_ON_ERROR, 'UTF-8'); 
    return $decodedValue; 
} 

问候, 不现实

+0

你在哪里以及如何调用'mimeDecodeValue()'? – Dragos

+0

zend-mail/src/Header/Date.php正在调用该函数来组装电子邮件标题。 $ value = HeaderWrap :: mimeDecodeValue($ value); – Unreality

+0

您是否尝试在该行上设置断点并在调试器中检查特定行中正在发生的事情? – Dragos

回答

0

能够延长= iconv.so在php.ini文件。

+0

好吧....我现在感觉很愚蠢....你是对的。虽然iconv似乎被激活,但它实际上并不是 – Unreality

+0

对于我的借口...文档说默认情况下它是启用的,尽管可以通过使用--without-iconv编译来禁用它。 这是问题所在。 – Unreality