diff options
| author | wn_ <invalid@email.com> | 2024-12-09 17:58:28 +0000 |
|---|---|---|
| committer | wn_ <invalid@email.com> | 2024-12-09 17:58:28 +0000 |
| commit | f6a8facfd4bfc40025c069eebc37094d826aff58 (patch) | |
| tree | 871aab0d8adafe736d954cae1783c260699c0ec3 /vendor/thecodingmachine/safe/generated/imap.php | |
| parent | cd2c10f9f71409df24fc74c1bbd7d5ddbf48d991 (diff) | |
Bump 'spomky-labs/otphp' to 11.3.x.
This is mainly for PHP 8.4 compatibility.
Diffstat (limited to 'vendor/thecodingmachine/safe/generated/imap.php')
| -rw-r--r-- | vendor/thecodingmachine/safe/generated/imap.php | 2289 |
1 files changed, 0 insertions, 2289 deletions
diff --git a/vendor/thecodingmachine/safe/generated/imap.php b/vendor/thecodingmachine/safe/generated/imap.php deleted file mode 100644 index 917a8e201..000000000 --- a/vendor/thecodingmachine/safe/generated/imap.php +++ /dev/null @@ -1,2289 +0,0 @@ -<?php - -namespace Safe; - -use Safe\Exceptions\ImapException; - -/** - * Convert an 8bit string to a quoted-printable string (according to - * RFC2045, section 6.7). - * - * @param string $string The 8bit string to convert - * @return string Returns a quoted-printable string. - * @throws ImapException - * - */ -function imap_8bit(string $string): string -{ - error_clear_last(); - $result = \imap_8bit($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Appends a string message to the specified folder. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $folder The mailbox name, see imap_open for more - * information - * @param string $message The message to be append, as a string - * - * When talking to the Cyrus IMAP server, you must use "\r\n" as - * your end-of-line terminator instead of "\n" or the operation will - * fail - * @param string $options If provided, the options will also be written - * to the folder - * @param string $internal_date If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a date string that conforms to the rfc2060 specifications for a date_time value. - * @throws ImapException - * - */ -function imap_append($imap, string $folder, string $message, string $options = null, string $internal_date = null): void -{ - error_clear_last(); - if ($internal_date !== null) { - $result = \imap_append($imap, $folder, $message, $options, $internal_date); - } elseif ($options !== null) { - $result = \imap_append($imap, $folder, $message, $options); - } else { - $result = \imap_append($imap, $folder, $message); - } - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Decodes the given BASE-64 encoded string. - * - * @param string $string The encoded text - * @return string Returns the decoded message as a string. - * @throws ImapException - * - */ -function imap_base64(string $string): string -{ - error_clear_last(); - $result = \imap_base64($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Convert an 8bit string to a base64 string according to RFC2045, Section 6.8. - * - * @param string $string The 8bit string - * @return string Returns a base64 encoded string. - * @throws ImapException - * - */ -function imap_binary(string $string): string -{ - error_clear_last(); - $result = \imap_binary($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * imap_body returns the body of the message, - * numbered message_num in the current - * mailbox. - * - * imap_body will only return a verbatim copy of the - * message body. To extract single parts of a multipart MIME-encoded - * message you have to use imap_fetchstructure to - * analyze its structure and imap_fetchbody to - * extract a copy of a single body component. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param int $flags The optional flags are a bit mask - * with one or more of the following: - * - * - * - * FT_UID - The message_num is a UID - * - * - * - * - * FT_PEEK - Do not set the \Seen flag if not already set - * - * - * - * - * FT_INTERNAL - The return string is in internal format, will - * not canonicalize to CRLF. - * - * - * - * @return string Returns the body of the specified message, as a string. - * @throws ImapException - * - */ -function imap_body($imap, int $message_num, int $flags = 0): string -{ - error_clear_last(); - $result = \imap_body($imap, $message_num, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Read the structure of a specified body section of a specific message. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param string $section The body section to read - * @return \stdClass Returns the information in an object. - * For a detailed description - * of the object structure and properties see - * imap_fetchstructure. - * @throws ImapException - * - */ -function imap_bodystruct($imap, int $message_num, string $section): \stdClass -{ - error_clear_last(); - $result = \imap_bodystruct($imap, $message_num, $section); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Checks information about the current mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @return \stdClass Returns the information in an object with following properties: - * - * - * - * Date - current system time formatted according to RFC2822 - * - * - * - * - * Driver - protocol used to access this mailbox: - * POP3, IMAP, NNTP - * - * - * - * - * Mailbox - the mailbox name - * - * - * - * - * Nmsgs - number of messages in the mailbox - * - * - * - * - * Recent - number of recent messages in the mailbox - * - * - * - * - * Returns FALSE on failure. - * @throws ImapException - * - */ -function imap_check($imap): \stdClass -{ - error_clear_last(); - $result = \imap_check($imap); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * This function causes a store to delete the specified - * flag to the flags set for the - * messages in the specified sequence. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $sequence A sequence of message numbers. You can enumerate desired messages - * with the X,Y syntax, or retrieve all messages - * within an interval with the X:Y syntax - * @param string $flag The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", - * "\\Deleted", and "\\Draft" (as defined by RFC2060) - * @param int $options options are a bit mask and may contain - * the single option: - * - * - * - * ST_UID - The sequence argument contains UIDs - * instead of sequence numbers - * - * - * - * @throws ImapException - * - */ -function imap_clearflag_full($imap, string $sequence, string $flag, int $options = 0): void -{ - error_clear_last(); - $result = \imap_clearflag_full($imap, $sequence, $flag, $options); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Closes the imap stream. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $flags If set to CL_EXPUNGE, the function will silently - * expunge the mailbox before closing, removing all messages marked for - * deletion. You can achieve the same thing by using - * imap_expunge - * @throws ImapException - * - */ -function imap_close($imap, int $flags = 0): void -{ - error_clear_last(); - $result = \imap_close($imap, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Creates a new mailbox specified by mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information. Names containing international characters should be - * encoded by imap_utf7_encode - * @throws ImapException - * - */ -function imap_createmailbox($imap, string $mailbox): void -{ - error_clear_last(); - $result = \imap_createmailbox($imap, $mailbox); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Deletes the specified mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @throws ImapException - * - */ -function imap_deletemailbox($imap, string $mailbox): void -{ - error_clear_last(); - $result = \imap_deletemailbox($imap, $mailbox); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * This function fetches mail headers for the given - * sequence and returns an overview of their - * contents. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $sequence A message sequence description. You can enumerate desired messages - * with the X,Y syntax, or retrieve all messages - * within an interval with the X:Y syntax - * @param int $flags sequence will contain a sequence of message - * indices or UIDs, if this parameter is set to - * FT_UID. - * @return array Returns an array of objects describing one message header each. - * The object will only define a property if it exists. The possible - * properties are: - * - * - * - * subject - the messages subject - * - * - * - * - * from - who sent it - * - * - * - * - * to - recipient - * - * - * - * - * date - when was it sent - * - * - * - * - * message_id - Message-ID - * - * - * - * - * references - is a reference to this message id - * - * - * - * - * in_reply_to - is a reply to this message id - * - * - * - * - * size - size in bytes - * - * - * - * - * uid - UID the message has in the mailbox - * - * - * - * - * msgno - message sequence number in the mailbox - * - * - * - * - * recent - this message is flagged as recent - * - * - * - * - * flagged - this message is flagged - * - * - * - * - * answered - this message is flagged as answered - * - * - * - * - * deleted - this message is flagged for deletion - * - * - * - * - * seen - this message is flagged as already read - * - * - * - * - * draft - this message is flagged as being a draft - * - * - * - * - * udate - the UNIX timestamp of the arrival date - * - * - * - * The function returns FALSE on failure. - * @throws ImapException - * - */ -function imap_fetch_overview($imap, string $sequence, int $flags = 0): array -{ - error_clear_last(); - $result = \imap_fetch_overview($imap, $sequence, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Fetch of a particular section of the body of the specified messages. - * Body parts are not decoded by this function. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param string $section The part number. It is a string of integers delimited by period which - * index into a body part list as per the IMAP4 specification - * @param int $flags A bitmask with one or more of the following: - * - * - * - * FT_UID - The message_num is a UID - * - * - * - * - * FT_PEEK - Do not set the \Seen flag if - * not already set - * - * - * - * - * FT_INTERNAL - The return string is in - * internal format, will not canonicalize to CRLF. - * - * - * - * @return string Returns a particular section of the body of the specified messages as a - * text string. - * @throws ImapException - * - */ -function imap_fetchbody($imap, int $message_num, string $section, int $flags = 0): string -{ - error_clear_last(); - $result = \imap_fetchbody($imap, $message_num, $section, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * This function causes a fetch of the complete, unfiltered RFC2822 format header of the specified - * message. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param int $flags The possible flags are: - * - * - * - * FT_UID - The message_num - * argument is a UID - * - * - * - * - * FT_INTERNAL - The return string - * is in "internal" format, without any attempt to - * canonicalize to CRLF newlines - * - * - * - * - * FT_PREFETCHTEXT - The RFC822.TEXT - * should be pre-fetched at the same time. This avoids an - * extra RTT on an IMAP connection if a full message text is - * desired (e.g. in a "save to local file" operation) - * - * - * - * @return string Returns the header of the specified message as a text string. - * @throws ImapException - * - */ -function imap_fetchheader($imap, int $message_num, int $flags = 0): string -{ - error_clear_last(); - $result = \imap_fetchheader($imap, $message_num, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Fetch the MIME headers of a particular section of the body of the specified messages. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param string $section The part number. It is a string of integers delimited by period which - * index into a body part list as per the IMAP4 specification - * @param int $flags A bitmask with one or more of the following: - * - * - * - * FT_UID - The message_num is a UID - * - * - * - * - * FT_PEEK - Do not set the \Seen flag if - * not already set - * - * - * - * - * FT_INTERNAL - The return string is in - * internal format, will not canonicalize to CRLF. - * - * - * - * @return string Returns the MIME headers of a particular section of the body of the specified messages as a - * text string. - * @throws ImapException - * - */ -function imap_fetchmime($imap, int $message_num, string $section, int $flags = 0): string -{ - error_clear_last(); - $result = \imap_fetchmime($imap, $message_num, $section, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Fetches all the structured information for a given message. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param int $flags This optional parameter only has a single option, - * FT_UID, which tells the function to treat the - * message_num argument as a - * UID. - * @return \stdClass Returns an object with properties listed in the table below. - * - * - * - * Returned Object for imap_fetchstructure - * - * - * - * - * type - * Primary body type - * - * - * encoding - * Body transfer encoding - * - * - * ifsubtype - * TRUE if there is a subtype string - * - * - * subtype - * MIME subtype - * - * - * ifdescription - * TRUE if there is a description string - * - * - * description - * Content description string - * - * - * ifid - * TRUE if there is an identification string - * - * - * id - * Identification string - * - * - * lines - * Number of lines - * - * - * bytes - * Number of bytes - * - * - * ifdisposition - * TRUE if there is a disposition string - * - * - * disposition - * Disposition string - * - * - * ifdparameters - * TRUE if the dparameters array exists - * - * - * dparameters - * An array of objects where each object has an - * "attribute" and a "value" - * property corresponding to the parameters on the - * Content-disposition MIME - * header. - * - * - * ifparameters - * TRUE if the parameters array exists - * - * - * parameters - * An array of objects where each object has an - * "attribute" and a "value" - * property. - * - * - * parts - * An array of objects identical in structure to the top-level - * object, each of which corresponds to a MIME body - * part. - * - * - * - * - * - * - * Primary body type (value may vary with used library, use of constants is recommended) - * - * - * ValueTypeConstant - * - * - * 0textTYPETEXT - * 1multipartTYPEMULTIPART - * 2messageTYPEMESSAGE - * 3applicationTYPEAPPLICATION - * 4audioTYPEAUDIO - * 5imageTYPEIMAGE - * 6videoTYPEVIDEO - * 7modelTYPEMODEL - * 8otherTYPEOTHER - * - * - * - * - * - * Transfer encodings (value may vary with used library, use of constants is recommended) - * - * - * ValueTypeConstant - * - * - * 07bitENC7BIT - * 18bitENC8BIT - * 2BinaryENCBINARY - * 3Base64ENCBASE64 - * 4Quoted-PrintableENCQUOTEDPRINTABLE - * 5otherENCOTHER - * - * - * - * @throws ImapException - * - */ -function imap_fetchstructure($imap, int $message_num, int $flags = 0): \stdClass -{ - error_clear_last(); - $result = \imap_fetchstructure($imap, $message_num, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Purges the cache of entries of a specific type. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $flags Specifies the cache to purge. It may one or a combination - * of the following constants: - * IMAP_GC_ELT (message cache elements), - * IMAP_GC_ENV (envelope and bodies), - * IMAP_GC_TEXTS (texts). - * @throws ImapException - * - */ -function imap_gc($imap, int $flags): void -{ - error_clear_last(); - $result = \imap_gc($imap, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Gets the ACL for a given mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @return array Returns an associative array of "folder" => "acl" pairs. - * @throws ImapException - * - */ -function imap_getacl($imap, string $mailbox): array -{ - error_clear_last(); - $result = \imap_getacl($imap, $mailbox); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets information on the mailboxes. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $reference reference should normally be just the server - * specification as described in imap_open - * @param string $pattern Specifies where in the mailbox hierarchy - * to start searching. - * - * There are two special characters you can - * pass as part of the pattern: - * '*' and '%'. - * '*' means to return all mailboxes. If you pass - * pattern as '*', you will - * get a list of the entire mailbox hierarchy. - * '%' - * means to return the current level only. - * '%' as the pattern - * parameter will return only the top level - * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. - * @return array Returns an array of objects containing mailbox information. Each - * object has the attributes name, specifying - * the full name of the mailbox; delimiter, - * which is the hierarchy delimiter for the part of the hierarchy - * this mailbox is in; and - * attributes. Attributes - * is a bitmask that can be tested against: - * - * - * - * LATT_NOINFERIORS - This mailbox not contains, and may not contain any - * "children" (there are no mailboxes below this one). Calling - * imap_createmailbox will not work on this mailbox. - * - * - * - * - * LATT_NOSELECT - This is only a container, - * not a mailbox - you cannot open it. - * - * - * - * - * LATT_MARKED - This mailbox is marked. This means that it may - * contain new messages since the last time it was checked. Not provided by all IMAP - * servers. - * - * - * - * - * LATT_UNMARKED - This mailbox is not marked, does not contain new - * messages. If either MARKED or UNMARKED is - * provided, you can assume the IMAP server supports this feature for this mailbox. - * - * - * - * - * LATT_REFERRAL - This container has a referral to a remote mailbox. - * - * - * - * - * LATT_HASCHILDREN - This mailbox has selectable inferiors. - * - * - * - * - * LATT_HASNOCHILDREN - This mailbox has no selectable inferiors. - * - * - * - * The function returns FALSE on failure. - * @throws ImapException - * - */ -function imap_getmailboxes($imap, string $reference, string $pattern): array -{ - error_clear_last(); - $result = \imap_getmailboxes($imap, $reference, $pattern); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets information about the subscribed mailboxes. - * - * Identical to imap_getmailboxes, except that it only - * returns mailboxes that the user is subscribed to. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $reference reference should normally be just the server - * specification as described in imap_open - * @param string $pattern Specifies where in the mailbox hierarchy - * to start searching. - * - * There are two special characters you can - * pass as part of the pattern: - * '*' and '%'. - * '*' means to return all mailboxes. If you pass - * pattern as '*', you will - * get a list of the entire mailbox hierarchy. - * '%' - * means to return the current level only. - * '%' as the pattern - * parameter will return only the top level - * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. - * @return array Returns an array of objects containing mailbox information. Each - * object has the attributes name, specifying - * the full name of the mailbox; delimiter, - * which is the hierarchy delimiter for the part of the hierarchy - * this mailbox is in; and - * attributes. Attributes - * is a bitmask that can be tested against: - * - * - * - * LATT_NOINFERIORS - This mailbox has no - * "children" (there are no mailboxes below this one). - * - * - * - * - * LATT_NOSELECT - This is only a container, - * not a mailbox - you cannot open it. - * - * - * - * - * LATT_MARKED - This mailbox is marked. - * Only used by UW-IMAPD. - * - * - * - * - * LATT_UNMARKED - This mailbox is not marked. - * Only used by UW-IMAPD. - * - * - * - * - * LATT_REFERRAL - This container has a referral to a remote mailbox. - * - * - * - * - * LATT_HASCHILDREN - This mailbox has selectable inferiors. - * - * - * - * - * LATT_HASNOCHILDREN - This mailbox has no selectable inferiors. - * - * - * - * The function returns FALSE on failure. - * @throws ImapException - * - */ -function imap_getsubscribed($imap, string $reference, string $pattern): array -{ - error_clear_last(); - $result = \imap_getsubscribed($imap, $reference, $pattern); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets information about the given message number by reading its headers. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $message_num The message number - * @param int $from_length Number of characters for the fetchfrom property. - * Must be greater than or equal to zero. - * @param int $subject_length Number of characters for the fetchsubject property - * Must be greater than or equal to zero. - * @return \stdClass Returns FALSE on error or, if successful, the information in an object with following properties: - * - * - * - * toaddress - full to: line, up to 1024 characters - * - * - * - * - * to - an array of objects from the To: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * fromaddress - full from: line, up to 1024 characters - * - * - * - * - * from - an array of objects from the From: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * ccaddress - full cc: line, up to 1024 characters - * - * - * - * - * cc - an array of objects from the Cc: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * bccaddress - full bcc: line, up to 1024 characters - * - * - * - * - * bcc - an array of objects from the Bcc: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * reply_toaddress - full Reply-To: line, up to 1024 characters - * - * - * - * - * reply_to - an array of objects from the Reply-To: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * senderaddress - full sender: line, up to 1024 characters - * - * - * - * - * sender - an array of objects from the Sender: line, with the following - * properties: personal, adl, - * mailbox, and host - * - * - * - * - * return_pathaddress - full Return-Path: line, up to 1024 characters - * - * - * - * - * return_path - an array of objects from the Return-Path: line, with the - * following properties: personal, - * adl, mailbox, and - * host - * - * - * - * - * remail - - * - * - * - * - * date - The message date as found in its headers - * - * - * - * - * Date - Same as date - * - * - * - * - * subject - The message subject - * - * - * - * - * Subject - Same as subject - * - * - * - * - * in_reply_to - - * - * - * - * - * message_id - - * - * - * - * - * newsgroups - - * - * - * - * - * followup_to - - * - * - * - * - * references - - * - * - * - * - * Recent - R if recent and seen, N - * if recent and not seen, ' ' if not recent. - * - * - * - * - * Unseen - U if not seen AND not recent, ' ' if seen - * OR not seen and recent - * - * - * - * - * Flagged - F if flagged, ' ' if not flagged - * - * - * - * - * Answered - A if answered, ' ' if unanswered - * - * - * - * - * Deleted - D if deleted, ' ' if not deleted - * - * - * - * - * Draft - X if draft, ' ' if not draft - * - * - * - * - * Msgno - The message number - * - * - * - * - * MailDate - - * - * - * - * - * Size - The message size - * - * - * - * - * udate - mail message date in Unix time - * - * - * - * - * fetchfrom - from line formatted to fit from_length - * characters - * - * - * - * - * fetchsubject - subject line formatted to fit - * subject_length characters - * - * - * - * @throws ImapException - * - */ -function imap_headerinfo($imap, int $message_num, int $from_length = 0, int $subject_length = 0): \stdClass -{ - error_clear_last(); - $result = \imap_headerinfo($imap, $message_num, $from_length, $subject_length); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Returns headers for all messages in a mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @return array Returns an array of string formatted with header info. One - * element per mail message. - * Returns FALSE on failure. - * @throws ImapException - * - */ -function imap_headers($imap): array -{ - error_clear_last(); - $result = \imap_headers($imap); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Returns an array containing the names of the mailboxes that have - * content in the text of the mailbox. - * - * This function is similar to imap_listmailbox, - * but it will additionally check for the presence of the string - * content inside the mailbox data. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $reference reference should normally be just the server - * specification as described in imap_open - * @param string $pattern Specifies where in the mailbox hierarchy - * to start searching. - * - * There are two special characters you can - * pass as part of the pattern: - * '*' and '%'. - * '*' means to return all mailboxes. If you pass - * pattern as '*', you will - * get a list of the entire mailbox hierarchy. - * '%' - * means to return the current level only. - * '%' as the pattern - * parameter will return only the top level - * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. - * @param string $content The searched string - * @return array Returns an array containing the names of the mailboxes that have - * content in the text of the mailbox. - * @throws ImapException - * - */ -function imap_listscan($imap, string $reference, string $pattern, string $content): array -{ - error_clear_last(); - $result = \imap_listscan($imap, $reference, $pattern, $content); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets an array of all the mailboxes that you have subscribed. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $reference reference should normally be just the server - * specification as described in imap_open - * @param string $pattern Specifies where in the mailbox hierarchy - * to start searching. - * - * There are two special characters you can - * pass as part of the pattern: - * '*' and '%'. - * '*' means to return all mailboxes. If you pass - * pattern as '*', you will - * get a list of the entire mailbox hierarchy. - * '%' - * means to return the current level only. - * '%' as the pattern - * parameter will return only the top level - * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. - * @return array Returns an array of all the subscribed mailboxes. - * @throws ImapException - * - */ -function imap_lsub($imap, string $reference, string $pattern): array -{ - error_clear_last(); - $result = \imap_lsub($imap, $reference, $pattern); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Create a MIME message based on the given envelope - * and bodies sections. - * - * @param array $envelope An associative array of header fields. Valid keys are: "remail", - * "return_path", "date", "from", "reply_to", "in_reply_to", "subject", - * "to", "cc", "bcc" and "message_id", which set the respective message headers to the given string. - * To set additional headers, the key "custom_headers" is supported, which expects - * an array of those headers, e.g. ["User-Agent: My Mail Client"]. - * @param array $bodies An indexed array of bodies. The first body is the main body of the message; - * only if it has a type of TYPEMULTIPART, further bodies - * are processed; these bodies constitute the bodies of the parts. - * - * - * Body Array Structure - * - * - * - * Key - * Type - * Description - * - * - * - * - * type - * int - * - * The MIME type. - * One of TYPETEXT (default), TYPEMULTIPART, - * TYPEMESSAGE, TYPEAPPLICATION, - * TYPEAUDIO, TYPEIMAGE, - * TYPEMODEL or TYPEOTHER. - * - * - * - * encoding - * int - * - * The Content-Transfer-Encoding. - * One of ENC7BIT (default), ENC8BIT, - * ENCBINARY, ENCBASE64, - * ENCQUOTEDPRINTABLE or ENCOTHER. - * - * - * - * charset - * string - * The charset parameter of the MIME type. - * - * - * type.parameters - * array - * An associative array of Content-Type parameter names and their values. - * - * - * subtype - * string - * The MIME subtype, e.g. 'jpeg' for TYPEIMAGE. - * - * - * id - * string - * The Content-ID. - * - * - * description - * string - * The Content-Description. - * - * - * disposition.type - * string - * The Content-Disposition, e.g. 'attachment'. - * - * - * disposition - * array - * An associative array of Content-Disposition parameter names and values. - * - * - * contents.data - * string - * The payload. - * - * - * lines - * int - * The size of the payload in lines. - * - * - * bytes - * int - * The size of the payload in bytes. - * - * - * md5 - * string - * The MD5 checksum of the payload. - * - * - * - * - * @return string Returns the MIME message as string. - * @throws ImapException - * - */ -function imap_mail_compose(array $envelope, array $bodies): string -{ - error_clear_last(); - $result = \imap_mail_compose($envelope, $bodies); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Copies mail messages specified by message_nums - * to specified mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $message_nums message_nums is a range not just message - * numbers (as described in RFC2060). - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @param int $flags flags is a bitmask of one or more of - * - * - * - * CP_UID - the sequence numbers contain UIDS - * - * - * - * - * CP_MOVE - Delete the messages from - * the current mailbox after copying. If this flag is set, the function - * behaves identically to imap_mail_move. - * - * - * - * @throws ImapException - * - */ -function imap_mail_copy($imap, string $message_nums, string $mailbox, int $flags = 0): void -{ - error_clear_last(); - $result = \imap_mail_copy($imap, $message_nums, $mailbox, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Moves mail messages specified by message_nums to the - * specified mailbox. - * Note that the mail messages are actually copied to the - * mailbox, and the original messages are flagged for deletion. - * That implies that the messages in mailbox are assigned new UIDs. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $message_nums message_nums is a range not just message numbers - * (as described in RFC2060). - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @param int $flags flags is a bitmask and may contain the single option: - * - * - * - * CP_UID - the sequence numbers contain UIDS - * - * - * - * @throws ImapException - * - */ -function imap_mail_move($imap, string $message_nums, string $mailbox, int $flags = 0): void -{ - error_clear_last(); - $result = \imap_mail_move($imap, $message_nums, $mailbox, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * This function allows sending of emails with correct handling of - * Cc and Bcc receivers. - * - * The parameters to, cc - * and bcc are all strings and are all parsed - * as RFC822 address lists. - * - * @param string $to The receiver - * @param string $subject The mail subject - * @param string $message The mail body, see imap_mail_compose - * @param string $additional_headers As string with additional headers to be set on the mail - * @param string $cc - * @param string $bcc The receivers specified in bcc will get the - * mail, but are excluded from the headers. - * @param string $return_path Use this parameter to specify return path upon mail delivery failure. - * This is useful when using PHP as a mail client for multiple users. - * @throws ImapException - * - */ -function imap_mail(string $to, string $subject, string $message, string $additional_headers = null, string $cc = null, string $bcc = null, string $return_path = null): void -{ - error_clear_last(); - if ($return_path !== null) { - $result = \imap_mail($to, $subject, $message, $additional_headers, $cc, $bcc, $return_path); - } elseif ($bcc !== null) { - $result = \imap_mail($to, $subject, $message, $additional_headers, $cc, $bcc); - } elseif ($cc !== null) { - $result = \imap_mail($to, $subject, $message, $additional_headers, $cc); - } elseif ($additional_headers !== null) { - $result = \imap_mail($to, $subject, $message, $additional_headers); - } else { - $result = \imap_mail($to, $subject, $message); - } - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Checks the current mailbox status on the server. It is similar to - * imap_status, but will additionally sum up the size of - * all messages in the mailbox, which will take some additional time to - * execute. - * - * @param resource $imap An IMAP\Connection instance. - * @return \stdClass Returns the information in an object with following properties: - * - * Mailbox properties - * - * - * - * Date - * date of last change (current datetime) - * - * - * Driver - * driver - * - * - * Mailbox - * name of the mailbox - * - * - * Nmsgs - * number of messages - * - * - * Recent - * number of recent messages - * - * - * Unread - * number of unread messages - * - * - * Deleted - * number of deleted messages - * - * - * Size - * mailbox size - * - * - * - * - * - * Returns FALSE on failure. - * @throws ImapException - * - */ -function imap_mailboxmsginfo($imap): \stdClass -{ - error_clear_last(); - $result = \imap_mailboxmsginfo($imap); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Decodes MIME message header extensions that are non ASCII text (see RFC2047). - * - * @param string $string The MIME text - * @return array The decoded elements are returned in an array of objects, where each - * object has two properties, charset and - * text. - * - * If the element hasn't been encoded, and in other words is in - * plain US-ASCII, the charset property of that element is - * set to default. - * - * The function returns FALSE on failure. - * @throws ImapException - * - */ -function imap_mime_header_decode(string $string): array -{ - error_clear_last(); - $result = \imap_mime_header_decode($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Decode a modified UTF-7 (as specified in RFC 2060, section 5.1.3) string to UTF-8. - * - * @param string $string A string encoded in modified UTF-7. - * @return string Returns string converted to UTF-8. - * @throws ImapException - * - */ -function imap_mutf7_to_utf8(string $string): string -{ - error_clear_last(); - $result = \imap_mutf7_to_utf8($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets the number of messages in the current mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @return int Return the number of messages in the current mailbox, as an integer. - * @throws ImapException - * - */ -function imap_num_msg($imap): int -{ - error_clear_last(); - $result = \imap_num_msg($imap); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Opens an IMAP stream to a mailbox. - * - * This function can also be used to open streams to POP3 and - * NNTP servers, but some functions and features are only - * available on IMAP servers. - * - * @param string $mailbox A mailbox name consists of a server and a mailbox path on this server. - * The special name INBOX stands for the current users - * personal mailbox. Mailbox names that contain international characters - * besides those in the printable ASCII space have to be encoded with - * imap_utf7_encode. - * - * The server part, which is enclosed in '{' and '}', consists of the servers - * name or ip address, an optional port (prefixed by ':'), and an optional - * protocol specification (prefixed by '/'). - * - * The server part is mandatory in all mailbox - * parameters. - * - * All names which start with { are remote names, and are - * in the form "{" remote_system_name [":" port] [flags] "}" - * [mailbox_name] where: - * - * - * - * remote_system_name - Internet domain name or - * bracketed IP address of server. - * - * - * - * - * port - optional TCP port number, default is the - * default port for that service - * - * - * - * - * flags - optional flags, see following table. - * - * - * - * - * mailbox_name - remote mailbox name, default is INBOX - * - * - * - * - * - * Optional flags for names - * - * - * - * Flag - * Description - * - * - * - * - * /service=service - * mailbox access service, default is "imap" - * - * - * /user=user - * remote user name for login on the server - * - * - * /authuser=user - * remote authentication user; if specified this is the user name - * whose password is used (e.g. administrator) - * - * - * /anonymous - * remote access as anonymous user - * - * - * /debug - * record protocol telemetry in application's debug log - * - * - * /secure - * do not transmit a plaintext password over the network - * - * - * /imap, /imap2, - * /imap2bis, /imap4, - * /imap4rev1 - * equivalent to /service=imap - * - * - * /pop3 - * equivalent to /service=pop3 - * - * - * /nntp - * equivalent to /service=nntp - * - * - * /norsh - * do not use rsh or ssh to establish a preauthenticated IMAP - * session - * - * - * /ssl - * use the Secure Socket Layer to encrypt the session - * - * - * /validate-cert - * validate certificates from TLS/SSL server (this is the default - * behavior) - * - * - * /novalidate-cert - * do not validate certificates from TLS/SSL server, needed if - * server uses self-signed certificates - * - * - * /tls - * force use of start-TLS to encrypt the session, and reject - * connection to servers that do not support it - * - * - * /notls - * do not do start-TLS to encrypt the session, even with servers - * that support it - * - * - * /readonly - * request read-only mailbox open (IMAP only; ignored on NNTP, and - * an error with SMTP and POP3) - * - * - * - * - * @param string $user The user name - * @param string $password The password associated with the user - * @param int $flags The flags are a bit mask with one or more of - * the following: - * - * - * - * OP_READONLY - Open mailbox read-only - * - * - * - * - * OP_ANONYMOUS - Don't use or update a - * .newsrc for news (NNTP only) - * - * - * - * - * OP_HALFOPEN - For IMAP - * and NNTP names, open a connection but - * don't open a mailbox. - * - * - * - * - * CL_EXPUNGE - Expunge mailbox automatically upon mailbox close - * (see also imap_delete and - * imap_expunge) - * - * - * - * - * OP_DEBUG - Debug protocol negotiations - * - * - * - * - * OP_SHORTCACHE - Short (elt-only) caching - * - * - * - * - * OP_SILENT - Don't pass up events (internal use) - * - * - * - * - * OP_PROTOTYPE - Return driver prototype - * - * - * - * - * OP_SECURE - Don't do non-secure authentication - * - * - * - * @param int $retries Number of maximum connect attempts - * @param array $options Connection parameters, the following (string) keys maybe used - * to set one or more connection parameters: - * - * - * - * DISABLE_AUTHENTICATOR - Disable authentication properties - * - * - * - * @return resource Returns an IMAP\Connection instance on success. - * @throws ImapException - * - */ -function imap_open(string $mailbox, string $user, string $password, int $flags = 0, int $retries = 0, array $options = []) -{ - error_clear_last(); - $result = \imap_open($mailbox, $user, $password, $flags, $retries, $options); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Convert a quoted-printable string to an 8 bit string according to RFC2045, section 6.7. - * - * @param string $string A quoted-printable string - * @return string Returns an 8 bits string. - * @throws ImapException - * - */ -function imap_qprint(string $string): string -{ - error_clear_last(); - $result = \imap_qprint($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * This function renames on old mailbox to new mailbox (see - * imap_open for the format of - * mbox names). - * - * @param resource $imap An IMAP\Connection instance. - * @param string $from The old mailbox name, see imap_open for more - * information - * @param string $to The new mailbox name, see imap_open for more - * information - * @throws ImapException - * - */ -function imap_renamemailbox($imap, string $from, string $to): void -{ - error_clear_last(); - $result = \imap_renamemailbox($imap, $from, $to); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Returns a properly formatted email address as defined in RFC2822 given the needed information. - * - * @param string|null $mailbox The mailbox name, see imap_open for more - * information - * @param string|null $hostname The email host part - * @param string|null $personal The name of the account owner - * @return string Returns a string properly formatted email address as defined in RFC2822. - * @throws ImapException - * - */ -function imap_rfc822_write_address(?string $mailbox, ?string $hostname, ?string $personal): string -{ - error_clear_last(); - $result = \imap_rfc822_write_address($mailbox, $hostname, $personal); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Saves a part or the whole body of the specified message. - * - * @param resource $imap An IMAP\Connection instance. - * @param string|resource $file The path to the saved file as a string, or a valid file descriptor - * returned by fopen. - * @param int $message_num The message number - * @param string $section The part number. It is a string of integers delimited by period which - * index into a body part list as per the IMAP4 specification - * @param int $flags A bitmask with one or more of the following: - * - * - * - * FT_UID - The message_num is a UID - * - * - * - * - * FT_PEEK - Do not set the \Seen flag if - * not already set - * - * - * - * - * FT_INTERNAL - The return string is in - * internal format, will not canonicalize to CRLF. - * - * - * - * @throws ImapException - * - */ -function imap_savebody($imap, $file, int $message_num, string $section = "", int $flags = 0): void -{ - error_clear_last(); - $result = \imap_savebody($imap, $file, $message_num, $section, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Sets an upper limit quota on a per mailbox basis. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $quota_root The mailbox to have a quota set. This should follow the IMAP standard - * format for a mailbox: user.name. - * @param int $mailbox_size The maximum size (in KB) for the quota_root - * @throws ImapException - * - */ -function imap_set_quota($imap, string $quota_root, int $mailbox_size): void -{ - error_clear_last(); - $result = \imap_set_quota($imap, $quota_root, $mailbox_size); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Sets the ACL for a giving mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @param string $user_id The user to give the rights to. - * @param string $rights The rights to give to the user. Passing an empty string will delete - * acl. - * @throws ImapException - * - */ -function imap_setacl($imap, string $mailbox, string $user_id, string $rights): void -{ - error_clear_last(); - $result = \imap_setacl($imap, $mailbox, $user_id, $rights); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Causes a store to add the specified flag to the - * flags set for the messages in the specified - * sequence. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $sequence A sequence of message numbers. You can enumerate desired messages - * with the X,Y syntax, or retrieve all messages - * within an interval with the X:Y syntax - * @param string $flag The flags which you can set are \Seen, - * \Answered, \Flagged, - * \Deleted, and \Draft as - * defined by RFC2060. - * @param int $options A bit mask that may contain the single option: - * - * - * - * ST_UID - The sequence argument contains UIDs - * instead of sequence numbers - * - * - * - * @throws ImapException - * - */ -function imap_setflag_full($imap, string $sequence, string $flag, int $options = 0): void -{ - error_clear_last(); - $result = \imap_setflag_full($imap, $sequence, $flag, $options); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Gets and sorts message numbers by the given parameters. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $criteria Criteria can be one (and only one) of the following: - * - * - * - * SORTDATE - message Date - * - * - * - * - * SORTARRIVAL - arrival date - * - * - * - * - * SORTFROM - mailbox in first From address - * - * - * - * - * SORTSUBJECT - message subject - * - * - * - * - * SORTTO - mailbox in first To address - * - * - * - * - * SORTCC - mailbox in first cc address - * - * - * - * - * SORTSIZE - size of message in octets - * - * - * - * @param int $reverse Whether to sort in reverse order. - * @param int $flags The flags are a bitmask of one or more of the - * following: - * - * - * - * SE_UID - Return UIDs instead of sequence numbers - * - * - * - * - * SE_NOPREFETCH - Don't prefetch searched messages - * - * - * - * @param string $search_criteria IMAP2-format search criteria string. For details see - * imap_search. - * @param string $charset MIME character set to use when sorting strings. - * @return array Returns an array of message numbers sorted by the given - * parameters. - * @throws ImapException - * - */ -function imap_sort($imap, int $criteria, int $reverse, int $flags = 0, string $search_criteria = null, string $charset = null): array -{ - error_clear_last(); - if ($charset !== null) { - $result = \imap_sort($imap, $criteria, $reverse, $flags, $search_criteria, $charset); - } elseif ($search_criteria !== null) { - $result = \imap_sort($imap, $criteria, $reverse, $flags, $search_criteria); - } else { - $result = \imap_sort($imap, $criteria, $reverse, $flags); - } - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Gets status information about the given mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @param int $flags Valid flags are: - * - * - * - * SA_MESSAGES - set $status->messages to the - * number of messages in the mailbox - * - * - * - * - * SA_RECENT - set $status->recent to the number - * of recent messages in the mailbox - * - * - * - * - * SA_UNSEEN - set $status->unseen to the number - * of unseen (new) messages in the mailbox - * - * - * - * - * SA_UIDNEXT - set $status->uidnext to the next - * uid to be used in the mailbox - * - * - * - * - * SA_UIDVALIDITY - set $status->uidvalidity to a - * constant that changes when uids for the mailbox may no longer be - * valid - * - * - * - * - * SA_ALL - set all of the above - * - * - * - * @return \stdClass This function returns an object containing status information. - * The object has the following properties: messages, - * recent, unseen, - * uidnext, and uidvalidity. - * - * flags is also set, which contains a bitmask which can - * be checked against any of the above constants. - * @throws ImapException - * - */ -function imap_status($imap, string $mailbox, int $flags): \stdClass -{ - error_clear_last(); - $result = \imap_status($imap, $mailbox, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Subscribe to a new mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @throws ImapException - * - */ -function imap_subscribe($imap, string $mailbox): void -{ - error_clear_last(); - $result = \imap_subscribe($imap, $mailbox); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Gets a tree of a threaded message. - * - * @param resource $imap An IMAP\Connection instance. - * @param int $flags - * @return array imap_thread returns an associative array containing - * a tree of messages threaded by REFERENCES. - * - * Every message in the current mailbox will be represented by three entries - * in the resulting array: - * - * - * $thread["XX.num"] - current message number - * - * - * $thread["XX.next"] - * - * - * $thread["XX.branch"] - * - * - * @throws ImapException - * - */ -function imap_thread($imap, int $flags = SE_FREE): array -{ - error_clear_last(); - $result = \imap_thread($imap, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Sets or fetches the imap timeout. - * - * @param int $timeout_type One of the following: - * IMAP_OPENTIMEOUT, - * IMAP_READTIMEOUT, - * IMAP_WRITETIMEOUT, or - * IMAP_CLOSETIMEOUT. - * @param int $timeout The timeout, in seconds. - * @return mixed If the timeout parameter is set, this function - * returns TRUE on success. - * - * If timeout is not provided or evaluates to -1, - * the current timeout value of timeout_type is - * returned as an integer. - * @throws ImapException - * - */ -function imap_timeout(int $timeout_type, int $timeout = -1) -{ - error_clear_last(); - $result = \imap_timeout($timeout_type, $timeout); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} - - -/** - * Removes the deletion flag for a specified message, which is set by - * imap_delete or imap_mail_move. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $message_nums A string representing one or more messages in IMAP4-style sequence format - * ("n", "n:m", or combination of these - * delimited by commas). - * @param int $flags - * @throws ImapException - * - */ -function imap_undelete($imap, string $message_nums, int $flags = 0): void -{ - error_clear_last(); - $result = \imap_undelete($imap, $message_nums, $flags); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Unsubscribe from the specified mailbox. - * - * @param resource $imap An IMAP\Connection instance. - * @param string $mailbox The mailbox name, see imap_open for more - * information - * @throws ImapException - * - */ -function imap_unsubscribe($imap, string $mailbox): void -{ - error_clear_last(); - $result = \imap_unsubscribe($imap, $mailbox); - if ($result === false) { - throw ImapException::createFromPhpError(); - } -} - - -/** - * Encode a UTF-8 string to modified UTF-7 (as specified in RFC 2060, section 5.1.3). - * - * @param string $string A UTF-8 encoded string. - * @return string Returns string converted to modified UTF-7. - * @throws ImapException - * - */ -function imap_utf8_to_mutf7(string $string): string -{ - error_clear_last(); - $result = \imap_utf8_to_mutf7($string); - if ($result === false) { - throw ImapException::createFromPhpError(); - } - return $result; -} |