Zend\Mail 标头:在非对象上调用成员函数 setType()

Posted

技术标签:

【中文标题】Zend\\Mail 标头:在非对象上调用成员函数 setType()【英文标题】:Zend\Mail headers: Call to a member function setType() on a non-objectZend\Mail 标头:在非对象上调用成员函数 setType() 【发布时间】:2016-06-12 03:54:51 【问题描述】:

尝试在 Zend\Mail 消息中设置内容类型时:

use Zend\Mail\Message;
.
.
.
// create the message
$message = new Message();
$message->getHeaders()->get('content-type')->setType('multipart/alternative');
.
.
.

我收到以下错误:

Fatal error: Call to a member function setType() on a non-object in /var/www/jt_sso/website/app/library/Mail/Manager.php on line 125

如果缺少此标头,我应该做些什么。我注意到 Zend\Mail\Headers ( getHeaders() 的结果)有一个 ::has(headerName) 方法,所以我可以检查这个方法是否存在,但是如果它丢失,我看不到设置新标题的方法。另外,我不能只设置消息(如果不存在则创建一个)?网上看例子的时候,只看到get()->setType(..)方法链。

【问题讨论】:

【参考方案1】:

这是因为标题“content-type”没有定义,所以你必须定义它。

例如:

$message->getHeaders()->addHeaderLine('content-type', 'multipart/alternative');

这应该添加缺少的标题并设置 输入你想要的。

【讨论】:

以上是关于Zend\Mail 标头:在非对象上调用成员函数 setType()的主要内容,如果未能解决你的问题,请参考以下文章

在非构造的“对象”上调用非虚拟成员函数是不是定义明确? [复制]

致命错误:在非对象上调用成员函数 fetch()?

致命错误:在非对象上调用成员函数 getLoginUrl()

在非对象上调用成员函数 removeElement()

FatalErrorException:错误:在非对象 symfony 上调用成员函数 has()

致命错误:在非对象 cakephp 上调用成员函数 save()