diff options
author | Andrew Dolgov <[email protected]> | 2021-02-26 19:16:17 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2021-02-26 19:16:17 +0300 |
commit | 3fd785654372d493c031d9b541ab33a881023a32 (patch) | |
tree | 0a76cb410217074378de3d7012b95754cd3c7e6f /vendor/thecodingmachine/safe/generated/imap.php | |
parent | bc4475b6698f5a74e475674aa7af43253c459892 (diff) |
* switch to composer for qrcode and otp dependencies
* move most OTP-related stuff into userhelper
* remove old phpqrcode and otphp libraries
Diffstat (limited to 'vendor/thecodingmachine/safe/generated/imap.php')
-rw-r--r-- | vendor/thecodingmachine/safe/generated/imap.php | 1481 |
1 files changed, 1481 insertions, 0 deletions
diff --git a/vendor/thecodingmachine/safe/generated/imap.php b/vendor/thecodingmachine/safe/generated/imap.php new file mode 100644 index 000000000..acd8672c6 --- /dev/null +++ b/vendor/thecodingmachine/safe/generated/imap.php @@ -0,0 +1,1481 @@ +<?php + +namespace Safe; + +use Safe\Exceptions\ImapException; + +/** + * Appends a string message to the specified mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $mailbox 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 mailbox + * @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_stream, string $mailbox, string $message, string $options = null, string $internal_date = null): void +{ + error_clear_last(); + $result = \imap_append($imap_stream, $mailbox, $message, $options, $internal_date); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Checks information about the current mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @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_stream): \stdClass +{ + error_clear_last(); + $result = \imap_check($imap_stream); + 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_stream An IMAP stream returned by + * imap_open. + * @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_stream, string $sequence, string $flag, int $options = 0): void +{ + error_clear_last(); + $result = \imap_clearflag_full($imap_stream, $sequence, $flag, $options); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Closes the imap stream. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param int $flag 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_stream, int $flag = 0): void +{ + error_clear_last(); + $result = \imap_close($imap_stream, $flag); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Creates a new mailbox specified by mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @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_stream, string $mailbox): void +{ + error_clear_last(); + $result = \imap_createmailbox($imap_stream, $mailbox); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Deletes the specified mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $mailbox The mailbox name, see imap_open for more + * information + * @throws ImapException + * + */ +function imap_deletemailbox($imap_stream, string $mailbox): void +{ + error_clear_last(); + $result = \imap_deletemailbox($imap_stream, $mailbox); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Fetches all the structured information for a given message. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param int $msg_number The message number + * @param int $options This optional parameter only has a single option, + * FT_UID, which tells the function to treat the + * msg_number 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_stream, int $msg_number, int $options = 0): \stdClass +{ + error_clear_last(); + $result = \imap_fetchstructure($imap_stream, $msg_number, $options); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} + + +/** + * Purges the cache of entries of a specific type. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param int $caches 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_stream, int $caches): void +{ + error_clear_last(); + $result = \imap_gc($imap_stream, $caches); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Gets information about the given message number by reading its headers. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param int $msg_number The message number + * @param int $fromlength Number of characters for the fetchfrom property. + * Must be greater than or equal to zero. + * @param int $subjectlength Number of characters for the fetchsubject property + * Must be greater than or equal to zero. + * @param string $defaulthost + * @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 fromlength + * characters + * + * + * + * + * fetchsubject - subject line formatted to fit + * subjectlength characters + * + * + * + * @throws ImapException + * + */ +function imap_headerinfo($imap_stream, int $msg_number, int $fromlength = 0, int $subjectlength = 0, string $defaulthost = null): \stdClass +{ + error_clear_last(); + $result = \imap_headerinfo($imap_stream, $msg_number, $fromlength, $subjectlength, $defaulthost); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} + + +/** + * Create a MIME message based on the given envelope + * and body 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 $body 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 $body): string +{ + error_clear_last(); + $result = \imap_mail_compose($envelope, $body); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} + + +/** + * Copies mail messages specified by msglist + * to specified mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $msglist msglist 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 $options options 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 + * + * + * + * @throws ImapException + * + */ +function imap_mail_copy($imap_stream, string $msglist, string $mailbox, int $options = 0): void +{ + error_clear_last(); + $result = \imap_mail_copy($imap_stream, $msglist, $mailbox, $options); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Moves mail messages specified by msglist to the + * specified mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $msglist msglist 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 $options options is a bitmask and may contain the single option: + * + * + * + * CP_UID - the sequence numbers contain UIDS + * + * + * + * @throws ImapException + * + */ +function imap_mail_move($imap_stream, string $msglist, string $mailbox, int $options = 0): void +{ + error_clear_last(); + $result = \imap_mail_move($imap_stream, $msglist, $mailbox, $options); + 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 $rpath 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 $rpath = null): void +{ + error_clear_last(); + $result = \imap_mail($to, $subject, $message, $additional_headers, $cc, $bcc, $rpath); + 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_stream An IMAP stream returned by + * imap_open. + * @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_stream): \stdClass +{ + error_clear_last(); + $result = \imap_mailboxmsginfo($imap_stream); + 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 $in A string encoded in modified UTF-7. + * @return string Returns in converted to UTF-8. + * @throws ImapException + * + */ +function imap_mutf7_to_utf8(string $in): string +{ + error_clear_last(); + $result = \imap_mutf7_to_utf8($in); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} + + +/** + * Gets the number of messages in the current mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @return int Return the number of messages in the current mailbox, as an integer. + * @throws ImapException + * + */ +function imap_num_msg($imap_stream): int +{ + error_clear_last(); + $result = \imap_num_msg($imap_stream); + 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 $username The user name + * @param string $password The password associated with the username + * @param int $options The options 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 $n_retries Number of maximum connect attempts + * @param array|null $params 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 stream on success. + * @throws ImapException + * + */ +function imap_open(string $mailbox, string $username, string $password, int $options = 0, int $n_retries = 0, ?array $params = null) +{ + error_clear_last(); + $result = \imap_open($mailbox, $username, $password, $options, $n_retries, $params); + 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_stream An IMAP stream returned by + * imap_open. + * @param string $old_mbox The old mailbox name, see imap_open for more + * information + * @param string $new_mbox The new mailbox name, see imap_open for more + * information + * @throws ImapException + * + */ +function imap_renamemailbox($imap_stream, string $old_mbox, string $new_mbox): void +{ + error_clear_last(); + $result = \imap_renamemailbox($imap_stream, $old_mbox, $new_mbox); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Saves a part or the whole body of the specified message. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string|resource $file The path to the saved file as a string, or a valid file descriptor + * returned by fopen. + * @param int $msg_number The message number + * @param string $part_number 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 $options A bitmask with one or more of the following: + * + * + * + * FT_UID - The msg_number 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_stream, $file, int $msg_number, string $part_number = "", int $options = 0): void +{ + error_clear_last(); + $result = \imap_savebody($imap_stream, $file, $msg_number, $part_number, $options); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Sets an upper limit quota on a per mailbox basis. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @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 $quota_limit The maximum size (in KB) for the quota_root + * @throws ImapException + * + */ +function imap_set_quota($imap_stream, string $quota_root, int $quota_limit): void +{ + error_clear_last(); + $result = \imap_set_quota($imap_stream, $quota_root, $quota_limit); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Sets the ACL for a giving mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $mailbox The mailbox name, see imap_open for more + * information + * @param string $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_stream, string $mailbox, string $id, string $rights): void +{ + error_clear_last(); + $result = \imap_setacl($imap_stream, $mailbox, $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_stream An IMAP stream returned by + * imap_open. + * @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_stream, string $sequence, string $flag, int $options = NIL): void +{ + error_clear_last(); + $result = \imap_setflag_full($imap_stream, $sequence, $flag, $options); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Gets and sorts message numbers by the given parameters. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @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 Set this to 1 for reverse sorting + * @param int $options The options 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_stream, int $criteria, int $reverse, int $options = 0, string $search_criteria = null, string $charset = null): array +{ + error_clear_last(); + $result = \imap_sort($imap_stream, $criteria, $reverse, $options, $search_criteria, $charset); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} + + +/** + * Subscribe to a new mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $mailbox The mailbox name, see imap_open for more + * information + * @throws ImapException + * + */ +function imap_subscribe($imap_stream, string $mailbox): void +{ + error_clear_last(); + $result = \imap_subscribe($imap_stream, $mailbox); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Gets a tree of a threaded message. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param int $options + * @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_stream, int $options = SE_FREE): array +{ + error_clear_last(); + $result = \imap_thread($imap_stream, $options); + 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_stream An IMAP stream returned by + * imap_open. + * @param int $msg_number The message number + * @param int $flags + * @throws ImapException + * + */ +function imap_undelete($imap_stream, int $msg_number, int $flags = 0): void +{ + error_clear_last(); + $result = \imap_undelete($imap_stream, $msg_number, $flags); + if ($result === false) { + throw ImapException::createFromPhpError(); + } +} + + +/** + * Unsubscribe from the specified mailbox. + * + * @param resource $imap_stream An IMAP stream returned by + * imap_open. + * @param string $mailbox The mailbox name, see imap_open for more + * information + * @throws ImapException + * + */ +function imap_unsubscribe($imap_stream, string $mailbox): void +{ + error_clear_last(); + $result = \imap_unsubscribe($imap_stream, $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 $in A UTF-8 encoded string. + * @return string Returns in converted to modified UTF-7. + * @throws ImapException + * + */ +function imap_utf8_to_mutf7(string $in): string +{ + error_clear_last(); + $result = \imap_utf8_to_mutf7($in); + if ($result === false) { + throw ImapException::createFromPhpError(); + } + return $result; +} |