|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests |
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 22:00:01 2025 UTC |
Description: ------------ c-client supports UID EXPUNGE feature from RFC 4315 Following patch adds the functionality to imap_expunge() when UID is set as second argument: diff -ur php-5.3.17.orig/ext/imap/php_imap.c php-5.3.17/ext/imap/php_imap.c --- php-5.3.17.orig/ext/imap/php_imap.c 2012-10-29 17:49:28.000000000 +0200 +++ php-5.3.17/ext/imap/php_imap.c 2012-12-06 11:11:41.000000000 +0200 @@ -166,7 +166,8 @@ #endif ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_expunge, 0, 0, 1) - ZEND_ARG_INFO(0, stream_id) + ZEND_ARG_INFO(0, stream_id) + ZEND_ARG_INFO(0, sequence) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_gc, 0, 0, 1) @@ -1137,6 +1138,7 @@ #if HAVE_IMAP_KRB && HAVE_IMAP_AUTH_GSS php_info_print_table_row(2, "Kerberos Support", "enabled"); #endif + php_info_print_table_row(2, "IMAP UIDEXPUNGE Support", "enabled"); php_info_print_table_end(); } /* }}} */ @@ -1553,18 +1555,23 @@ Permanently delete all messages marked for deletion */ PHP_FUNCTION(imap_expunge) { - zval *streamind; - pils *imap_le_struct; + zval *streamind; + char *sequence; + long flags = 0x1; + int sequence_len; + int argc = ZEND_NUM_ARGS(); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &streamind) == FAILURE) { - return; - } + pils *imap_le_struct; - ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); + if (zend_parse_parameters(argc TSRMLS_CC, "r|s", &streamind, &sequence, &sequence_len) == FAILURE) { + return; + } - mail_expunge (imap_le_struct->imap_stream); + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, &streamind, -1, "imap", le_imap); - RETURN_TRUE; + mail_expunge_full (imap_le_struct->imap_stream, (argc == 2 ? sequence : NIL), (argc == 2 ? flags : NIL)); + + RETURN_TRUE; } /* }}} */ Test script: --------------- imap_expunge(resource $imap_stream, int $uid)