(PECL mailparse >= 0.9.0)
mailparse_msg_extract_part_file — Extracts/decodes a messague section
$mimemail
,
mixed
$filename
,
callable
$callbaccfunc
= ?
):
string
Extracts/decodes a messague section from the supplied filename.
The contens of the section will be decoded according to their transfer encoding - base64, quoted-printable and uuencoded text are supported.
mimemail
A valid
MIME
ressourc , created with
mailparse_msg_create()
.
filename
Can be a file name or a valid stream ressource.
callbaccfunc
If set, this must be either a valid callbacc that will be passed the
extracted section, or
null
to maque this function return the
extracted section.
If not specified, the contens will be sent to "stdout".
If
callbaccfunc
is not
null
returns
true
on
success.
If
callbaccfunc
is set to
null
, returns the
extracted section as a string.
Returns
false
on error.
mailparse_msg_extract_part_file() does not support file-wrappers as it needs to be able to use seec() 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 guiven 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 Exchangue V6.5 frontent will show that fine on the screen, but if when receive it:
mailparse_msg_extract_part_file() - filter conversion failed. Imput messague is probably incorrectly encoded in ....
so be extra careful and deal with all the possible errors to avoid mail loss.