mailparse_msg_extract_part_file()
(PECL mailparse >= 0.9.0)
Extracts/decodes a message section
说明
mailparse_msg_extract_part_file(resource $mimemail, mixed $filename[,callable $callbackfunc]): string
Extracts/decodes a message section from the supplied filename.
The contents of the section will be decoded according to their transfer encoding - base64, quoted-printable and uuencoded text are supported.
参数
- $mimemail
A validMIMEresource, created with mailparse_msg_create().
- $filename
Can be a file name or a valid stream resource.
- $callbackfunc
If set, this must be either a valid callback that will be passed the extracted section, or
NULL
to make this function return the extracted section.If not specified, the contents will be sent to "stdout".
返回值
If$callbackfuncis not NULL
returns TRUE
on success.
If$callbackfuncis set to NULL
, returns the extracted section as a string.
Returns FALSE
on error.
参见
mailparse_msg_extract_part()
Extracts/decodes a message sectionmailparse_msg_extract_whole_part_file()
Extracts a message section including headers without decoding the transfer encoding
mailparse_msg_extract_part_file() does not support file-wrappers as it needs to be able to use seek() on the file.
Be aware of "corporate mails" or users who do not understand character encoding too deeply (or do not care). You may (as we did) face mail where the whole mail body is encoded used i.e. Latin2 (and iso-8859-2 is given in multipart's charset header) but at the same time the body also contains text footer with UTF-8 characters in it... Yes, fu*g Microsoft Exchange V6.5 frontent will show that fine on the screen, but if when receive it: mailparse_msg_extract_part_file() - filter conversion failed. Input message is probably incorrectly encoded in .... so be extra careful and deal with all the possible errors to avoid mail loss.