Php 从Swift_邮件对象获取附件列表
正如我们在下面看到的,没有任何方法被称为Php 从Swift_邮件对象获取附件列表,php,symfony,swiftmailer,Php,Symfony,Swiftmailer,正如我们在下面看到的,没有任何方法被称为getAttachments(),因此我如何从Swift\u Message对象中列出/获取/循环附件?我在文档或示例中找不到任何信息。下面列出了所有方法,如下所示。除附件外,我可以检查所有其他内容 我用symfony来做这个 Array ( [0] => __construct [1] => newInstance [2] => addPart [3] => attachSigner [4]
getAttachments()
,因此我如何从Swift\u Message
对象中列出/获取/循环附件?我在文档或示例中找不到任何信息。下面列出了所有方法,如下所示。除附件外,我可以检查所有其他内容
我用symfony来做这个
Array
(
[0] => __construct
[1] => newInstance
[2] => addPart
[3] => attachSigner
[4] => detachSigner
[5] => toString
[6] => toByteStream
[7] => __wakeup
[8] => __clone
[9] => getNestingLevel
[10] => setSubject
[11] => getSubject
[12] => setDate
[13] => getDate
[14] => setReturnPath
[15] => getReturnPath
[16] => setSender
[17] => getSender
[18] => addFrom
[19] => setFrom
[20] => getFrom
[21] => addReplyTo
[22] => setReplyTo
[23] => getReplyTo
[24] => addTo
[25] => setTo
[26] => getTo
[27] => addCc
[28] => setCc
[29] => getCc
[30] => addBcc
[31] => setBcc
[32] => getBcc
[33] => setPriority
[34] => getPriority
[35] => setReadReceiptTo
[36] => getReadReceiptTo
[37] => attach
[38] => detach
[39] => embed
[40] => __toString
[41] => setBody
[42] => getCharset
[43] => setCharset
[44] => getFormat
[45] => setFormat
[46] => getDelSp
[47] => setDelSp
[48] => charsetChanged
[49] => generateId
[50] => getHeaders
[51] => getContentType
[52] => setContentType
[53] => getId
[54] => setId
[55] => getDescription
[56] => setDescription
[57] => getMaxLineLength
[58] => setMaxLineLength
[59] => getChildren
[60] => setChildren
[61] => getBody
[62] => getEncoder
[63] => setEncoder
[64] => getBoundary
[65] => setBoundary
[66] => encoderChanged
[67] => __destruct
)
我可以确认该对象包含附件。转储结果:
toString()输出
....
....
--_=_swift_v4_1449763083_6fe131190f5a7df1b45687b6bbb117a9_=_
Content-Type: image/jpeg; name=38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg
/9j/4AAQSkZJRgABAgEAYABgAAD/4RCIRXhpZgAATU0AKgAAAAgAA4dpAAQAAAABAAAIPpyeAAEA
....
....
Swift_Message::__set_state(array(
'headerSigners' =>
array (
),
....
....
array (
'filename' => '38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg',
),
....
....
var_export()输出
....
....
--_=_swift_v4_1449763083_6fe131190f5a7df1b45687b6bbb117a9_=_
Content-Type: image/jpeg; name=38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg
/9j/4AAQSkZJRgABAgEAYABgAAD/4RCIRXhpZgAATU0AKgAAAAgAA4dpAAQAAAABAAAIPpyeAAEA
....
....
Swift_Message::__set_state(array(
'headerSigners' =>
array (
),
....
....
array (
'filename' => '38423961aa437473ae2d6cb8caf796d31e20dbc4.jpeg',
),
....
....
从它看来,附件被添加到了$\u children
(从Swift\u Mime\u simplemiemeentity
)数组中
这让我相信,您可以使用
->getChildren()
获取所有附件。我只是想根据@qoopmao上面的“已接受”提示给出完整示例,因此完整的解决方案如下:
$message = This is your Swift_Message object
foreach ($message->getChildren() as $child) {
echo str_replace('attachment; filename=', null, $child->getHeaders()->get('content-disposition')->getFieldBody()).PHP_EOL;
}
就是那个。它在这里:
foreach($message->getChildren()作为$child){$child->getHeaders()->get('content-disposition');}
。非常感谢。我真的甩了,但没有得到任何结果,所以我想我错过了什么。