Open keksa opened 4 years ago
Mmm, no, for structure to be present lazyLoadStructure
is enough.
The original raw message is needed to me for debugging the issue
Hello @Slamdunk, I'm sorry to say, but I don't have the original message and I have no way of getting it.
Is it really needed though? IMO just checking if there is a parts
property in structure should be enough. In case there is no part from which to construct new structure I would just throw a NotEmbeddedMessageException
. Since you require the structure being there, it makes the most sense to me.
Additionally this could be checked in the Attachment::isEmbeddedMessage()
.
@keksa @Slamdunk The problem arose because of a TypeError
In /ddeboer/imap/src/Message/Attachment.php on line 61
shouldn't the following line
return new EmbeddedMessage($this->resource, $this->getNumber(), $this->getPartNumber(), $this->getStructure()->parts[0]);
be replaced by
return new EmbeddedMessage($this->resource, $this->getNumber(), $this->getPartNumber(), $this->getStructure());
?
->parts[0]
is needed for regular embedded messages, try to remove it and run the test suite.
A guard assertion would be good, but still we need a real example to better handle the case.
Hello I have the same issue:
Notice: Undefined property: stdClass::$parts in /vendor/ddeboer/imap/src/Message/Attachment.php on line 51
Notice: Trying to access array offset on value of type null in /vendor/ddeboer/imap/src/Message/Attachment.php on line 51
Fatal error: Uncaught TypeError: Argument 4 passed to Ddeboer\Imap\Message\AbstractPart::__construct() must be an instance of stdClass, null given, called in /vendor/ddeboer/imap/src/Message/Attachment.php on line 51 and defined in /vendor/ddeboer/imap/src/Message/AbstractPart.php:74
Stack trace:
#0 /vendor/ddeboer/imap/src/Message/Attachment.php(51): Ddeboer\Imap\Message\AbstractPart->__construct()
Thanks
@antoniofusco Can you paste here, with sensitive data obfuscated, the original mail that generated the error please?
what do you mean by original email. Do you need the .eml file?
Exactly, I need it to replicate the behavior in the test suite
mmm, I cannot share the .eml I am sorry
is the object not helpful?
As I said, just strip any sensitive data:
foo
foo
tooThe object doesn't help
is there a way to get the .eml file from the library?
$message->getRawMessage()
Thanks,
Here the content of the .eml file downloaded from the webmail
Received: from example.com (1.1.1.1/example.com) by example.com (5.8.715.01)
id 6062BA7B0030817F for email; Wed, 7 Apr 2021 15:42:35 +0200
Received: from [192.168.1.3] ([151.26.56.189])
by smtp-33.iol.local with ESMTPA
id U8S3lIwEKR8VAU8S3lLcgl; Wed, 07 Apr 2021 15:42:35 +0200
x-libjamoibt: 1601
DKIM-Signature: DKIM-Signature
X-CNFS-Analysis: v=2.4 cv=OapdsjfY c=1 sm=1 tr=0 ts=606db6cb cx=a_exe
a=zgQP26mVt5qJHDBbPw+dTw==:117 a=zgQP26mVt5qJHDBbPw+dTw==:17
a=cs4TwIhsDtR7jx_pK5cA:9 a=QEXdDO2ut3YA:10 a=O3BSzL-NfjQ7-Z9sUR0A:9
a=Eh59t4TRhDAA:10 a=m-Z_27IZkzAA:10 a=Kdbpdt8TAAAA:8 a=QQMVkDJmAAAA:8
a=jdjLEVCnzNLDzOMku8gA:9 a=yF+Lej8VMLx8D+W9JUKAdI9maSY=:19 a=UERqH62pugEA:10
a=f3Gq4qMEfRcEZIHzMf47:22 a=aSwMGaGY8aNtKDSVnBfA:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22
a=bWyr8ysk75zN3GCy5bjg:22
Date: Wed, 07 Apr 2021 15:42:34 +0200
From: email
Message-ID: Message-ID
Subject: Subject
To: c2luaXN0cmlkYWxsYm9nZ0BsZWdhbG1haWwuaXQ=
<DEST>
References: References
MIME-Version: 1.0
Content-Type: multipart/report; report-type=disposition-notification;
boundary="------------mdn62E58E45C983D9C9435C616A"
X-CMAE-Envelope: MS4xfP4PzTeurRCDFgOemG9RGPEJJPPlKldJqZYCJyfg/TEWOvQ7bUHU2NyUP9uMX2S0ghbopu251p+MrkFsrM1OZfIvLGMye0Si7QoFsBiEoRQKKQNJhPRp
X3hsAiv8lgyd9gzTejffAW2ME1Gl7RvslZBSmVzLd5eL+vWXZfLVRgsPeEjXzHJ4LQvDoRvhhPXbux8fqz2V3XMktiHfA9y7p/0=
--------------mdn62E58E45C983D9C9435C616A
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
BODY
--------------mdn62E58E45C983D9C9435C616A
Content-Type: message/disposition-notification; name="MDNPart2.txt"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
Reporting-UA: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0
Final-Recipient: rfc822;Final-Recipient
Original-Message-ID: Original-Message-ID
Disposition: manual-action/MDN-sent-manually; displayed
--------------mdn62E58E45C983D9C9435C616A
Content-Type: text/rfc822-headers; name="MDNPart3.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Return-Path: <email>
Delivered-To: email
Received: from dcd-12 ([10.103.10.25])
by dcbackend-36.iol.local with LMTP id cGv9EpenbWBDHQQA0mtumg
for ; Wed, 07 Apr 2021 14:37:43 +0200
Received: from dcp-17.iol.local ([10.103.10.25])
by dcd-12 with LMTP id YI3cEpenbWDx/wAAo7Ek4Q
; Wed, 07 Apr 2021 14:37:43 +0200
Received: from libero.it ([10.103.10.25])
by dcp-17.iol.local with LMTP id SPM3D5enbWBxdQEAXmhDwA
; Wed, 07 Apr 2021 14:37:43 +0200
Received: from
by smtp-25.iol.local with ESMTP
id U7RGlNslso08DU7RGlxdnA; Wed, 07 Apr 2021 14:37:43 +0200
X-IOL-DMARC: X-IOL-DMARC
X-IOL-DKIM: X-IOL-DKIM
X-IOL-SPF: X-IOL-SPF
X-IOL-SEC: _SPFOK_NODKIM_NODMARC
x-fbsn: x-fbsn
x-libjamoibt: 2601
Received-SPF: pass
X-CNFS-Analysis: v=2.4 cv=dNdjJMVb c=1 sm=1 tr=0 ts=606da797 cx=a_exe
a=eF99n0+kJaWlA6UO8X8FlA==:117 a=AjAyd5mc6WtYKcZ44Lqm7g==:17
a=3YhXtTcJ-WEA:10 a=QQMVkDJmAAAA:8 a=tPUxibC-1i7YqQCDP7MA:9 a=wPNLvfGTeEIA:10
a=0-mT0QOSfRYcpCXoKs0A:9 a=5Nb44pWDtQb_V56I:21 a=_W_S_7VecoQA:10
a=r77TgQKjGQsHNAKrUKIA:9 a=RT134Wp91VU43VZs3bgA:9 a=QEXdDO2ut3YA:10
a=KobOExqYxX0A:10 a=JHi4H5UT99yyDx_wqjEA:9 a=jjlfnWhyjRlJA0mAGF8A:9
a=IKIoO-ieCDEA:10 a=aW-bZQx6DCYA:10 a=Yy2xoct6d_2ZlxTvqP-Z:22
a=2Y-vvK4RtTjk8tdDCeaJ:22 a=e1bHTynNcurks996NJsQ:22 a=5MxXyNQ-P-6J4PTiW665:22
a=-UBWlq5PF8_PtPJzeHtb:22 a=wlUwIh43bdezdDEJ2Pn8:22 a=OuUWKbJwWYUocdwMygcA:9
a=zJJgJrR4LD4A:10 a=A4eEXqY5kCutICW5W5kA:9 a=ZVk8-NSrHBgA:10
a=aSwMGaGY8aNtKDSVnBfA:22 a=pHzHmUro8NiASowvMSCR:22 a=Ew2E2A-JSTLzCXPT_086:22
Received:
id 5DCD02D60859E26A; Wed, 7 Apr 2021 14:37:31 +0200
Received: by Received
Received:
id 6062B6A500219499; Wed, 7 Apr 2021 14:37:26 +0200
Date: Wed, 7 Apr 2021 12:37:28 +0000
From: From
Sender: Sender
Reply-To: Reply-To
To: To
Message-ID: Message-ID
Subject: Subject
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-1;
boundary="----=_Part_210985685_910079062.1617799048429"
X-Priority: 1
Return-Receipt-To: Return-Receipt-To
Disposition-Notification-To: Disposition-Notification-To
X-Trasporto: posta-certificata
X-Riferimento-Message-ID:Message-ID
X-CMAE-Envelope: X-CMAE-Envelope
--------------mdn62E58E45C983D9C9435C616A--
is this helpful?
I need time to debug it, hope to have a look in the next month
in the meantime, could you tell me how to escape it? I tried with a try catch but nothing Thanks
I don't think you can escape it.
Any PR is welcome
I don't know how to reproduce this, we just received a crash report.
On this line: https://github.com/ddeboer/imap/blob/208a29fd4bb2c3240a10ebfb51cc84f5a16dad51/src/Message/Attachment.php#L61
We've got a notice:
I think it might be because the
getStructure()
method only callsAbstractPart::lazyLoadStructure()
and notAbstractPart::lazyParseStructure()
, but I don't see into the code enough to know for sure.