У меня нет проблем с работой с электронными письмами с использованием функций PHP IMAP, но я бы хотел, чтобы я мог физически изменять сообщения, и я просто не уверен, что это возможно. Кто-нибудь имел успех в этом?
т.е. я хотел бы иметь возможность изменить тему темы, или я хотел бы навсегда удалить подписи или объявления из тела и т.д.
До сих пор единственный способ, который я вижу, это:
** Это единственное неизвестное здесь... знаете ли вы, можно ли просто сохранить новое сообщение в папке или нужно его получить через SMTP?
Если я могу просто сохранить, мне нужно беспокоиться о номере заказа сообщения (уникальный идентификатор в контексте папки, простое целое число), или будет ли папка просто пересортироваться на основе указанных сообщений даты отправки?
Любые идеи были бы очень признательны!
Как отметил @Max в комментариях к OP, функция IMAP, которую я искал, была "APPEND", а соответствующий PHP-метод - http://php.net/manual/en/function.imap-append.php
Синтаксис: bool imap_append ( resource $imap_stream, string $mailbox, string $message [, string $options = NULL [, string $internal_date = NULL ]] )
Есть примеры того, как добавить сообщение в папку IMAP в комментариях на странице ссылки, но основной пример следующий: для добавления сообщения в папку "INBOX.drafts"...
imap_append($stream, "{imap.example.org}INBOX.Drafts"
, "From: [email protected]\r\n"
. "To: [email protected]\r\n"
. "Subject: test\r\n"
. "\r\n"
. "this is a test message, please ignore\r\n"
);
... с $stream
являющимся дескриптором соединения. В моем случае я также хочу включить mime-контейнеры, которые будут включены в конкатенированное $message
, и будут соответствующим образом закодированы на основе типов контента.
Надеюсь, это поможет!
Команда STORE не поддерживается (IIRC) на стандартном расширении IMAP, но доступна в наемном IMAP-клиенте. Но я изо всех сил пытаюсь представить, почему вы хотели бы сделать это с IMAP в первую очередь - для большинства сценариев, о которых я могу думать, было бы разумнее изменить сообщение на отправляющем MUA/MTA/MDA