Làm cách nào để tải tệp đính kèm từ email này?imap - nhận tệp đính kèm
Email này được gửi từ một máy tính táo và Cơ cấu email không giống như bất kỳ khác (ngạc nhiên) .. ở đây phần với sự sắp xếp là một trong những khía cạnh sâu hơn nữa ..
Các kịch bản làm việc với mỗi khác email, nơi một phần với các tập tin là trong chiều đầu tiên, nhưng không phải với điều này một
$part->dparameters[0]->value
trả về tên tập tin, nhưng strlen($data)
lợi nhuận 0
imap dòng
$structure = imap_fetchstructure($this->stream, $this->msgno);
if(isset($structure->parts)){
print_r($structure->parts);
$this->parse_parts($structure->parts);
}
function parse_parts($parts){
foreach($parts as $section => $part){
if(isset($part->parts)){
// some mails have one extra dimension
$this->parse_parts($part->parts);
}
elseif(isset($part->disposition)){
if(in_array(strtolower($part->disposition), array('attachment','inline'))){
$data = imap_fetchbody($this->stream, $this->msgno, $section+1);
echo $part->dparameters[0]->value.' '.strlen($data)."\n";
}
}
}
}
print_r
Array
(
[0] => stdClass Object
(
[type] => 0
[encoding] => 0
[ifsubtype] => 1
[subtype] => PLAIN
[ifdescription] => 0
[ifid] => 0
[lines] => 15
[bytes] => 173
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => CHARSET
[value] => us-ascii
)
)
)
[1] => stdClass Object
(
[type] => 1
[encoding] => 0
[ifsubtype] => 1
[subtype] => MIXED
[ifdescription] => 0
[ifid] => 0
[bytes] => 23420
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => BOUNDARY
[value] => Apple-Mail=_800896E0-A9C9-456E-B063-79CED9DD4FD7
)
)
[parts] => Array
(
[0] => stdClass Object
(
[type] => 0
[encoding] => 0
[ifsubtype] => 1
[subtype] => HTML
[ifdescription] => 0
[ifid] => 0
[bytes] => 136
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => CHARSET
[value] => us-ascii
)
)
)
[1] => stdClass Object
(
[type] => 3
[encoding] => 3
[ifsubtype] => 1
[subtype] => PDF
[ifdescription] => 0
[ifid] => 0
[bytes] => 17780
[ifdisposition] => 1
[disposition] => INLINE
[ifdparameters] => 1
[dparameters] => Array
(
[0] => stdClass Object
(
[attribute] => FILENAME
[value] => 057 - LPJ - Stik og labels.pdf
)
)
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => NAME
[value] => 057 - LPJ - Stik og labels.pdf
)
)
)
[2] => stdClass Object
(
[type] => 0
[encoding] => 4
[ifsubtype] => 1
[subtype] => HTML
[ifdescription] => 0
[ifid] => 0
[lines] => 75
[bytes] => 4931
[ifdisposition] => 0
[ifdparameters] => 0
[ifparameters] => 1
[parameters] => Array
(
[0] => stdClass Object
(
[attribute] => CHARSET
[value] => us-ascii
)
)
)
)
)
)
Tôi không hiểu làm thế nào một email được gửi * TỪ * a Mac có thể là bất kỳ khác với bất kì thứ khác. Bạn đã so sánh tiêu đề email với một email được gửi từ một loại tài khoản khác để tìm hiểu chính xác cách chúng khác nhau? Trừ khi "từ" bạn có nghĩa là nó được lưu trữ trên một máy chủ email trên máy Mac. – Mike
Cấu trúc cơ thể khác với bất kỳ phần nào khác .. phần có tệp là một chiều sâu hơn trong cấu trúc hơn là khác – clarkk
Tôi đã nói tiêu đề thư. Xem mã nguồn của email và so sánh chúng để xem có gì khác biệt. So sánh cách mỗi người trong số họ gửi tệp đính kèm và điều đó có thể cung cấp cho bạn ý tưởng về những gì đang diễn ra. – Mike