Что такое код imap_setflag_full

Pixel.com

Скрипты и коды для веб-приложений

Место для рекламы

IMAP c PHP часть 2

В первой части темы было описано, как подключиться к серверу IMAP, используя функции PHP. В этой части мы завершим эту тему, функциями для работы с папками и чтение и скачивание содержимого электронной почты.

Работа с электронной почтой

Список с метками, как правило, связаны с каждым сообщением: прочитанное, ответил, помеченные, проект и др. Мы можем определить, было ли просмотрено сообщение или нет. Если сообщение не было просмотрено то мы получим значение “U”. Давайте модифицируем код из первой части статьи, чтобы отобразить прочитано/не прочитано.

Мы можем проверить статус Unseen и присваивать различные классы CSS для разметки, которые помогут узнать нам прочитано или не прочитано письмо не открывая его заново.

Мы также можем создать специальные метки, для электронной почты. Например, предположим, что мы хотим, пометить сообщение как избранные. Для этого мы используем свойства, которое будут иметь значение «F».

Чтобы установить метки для сообщения, мы используем функцию impa_setflag_full() .

Приведенный выше код помечает сообщение как «Read(\Seen)» и отправляет в статус «F». Я всегда предпочитаю использовать UID вместо электронной почты номер последовательности в качестве второго параметра, поэтому я должен задать необязательный четвертый параметр-константа ST_UID . С этой функцией Вы можете предоставить и другие метки, например, Черновики, Удаленные, и т.д.

В примере метки установлены только для одного сообщения, Вы можете предоставлять широкий спектр как «1,10″ в качестве второго параметра для установки меток на несколько сообщений.

Удаление сообщений электронной почты

Функция Imap_delete() используется для удаления сообщений. Функция только помечает их для удаления, но на самом деле не удаляет. Функция Imap_expunge() отвечает за фактические удаления отмеченных сообщений.

Я вызвал функцию delete с UID вместо порядкового номера. В противном случае, я рискую потерять важные сообщения из-за изменений в последовательности номеров (помните, одна из частей, с не уникальным номером).

Просмотр вложений в письме

Работа электронной почтой с вложениями, является следующей наиболее важной особенностью почтового клиента. Мы сосредоточимся на проверке почтовых вложений, и отображение их для скачивания.

Существуют различные методы для чтения структуры сообщения и идентификацией вложений. Библиотека, упомянута в первой части статьи, Получение класса почты разработана Митул Корадиа, имеет возможности для скачивания. Но в примере Я буду использовать функцию комментариев для функции imap_fetchstructure() , которая возможно, самый простой способ.

Илон Маск рекомендует:  Вывод справочной информации (chm)

Перед тем как посмотреть на код, посмотрите структуру электронной почты с вложениями, возвращаемой imap_fetchstructure() .

Если вы внимательно посмотрите на структуру, вы увидите, что вложения разбросаны. Это письмо имеет 1 привязку, но можно сделать несколько вложений и тем самым несколько частей с привязкой. С этим параметром мы можем легко определить вложения:

Внутри функция viewMailbox() . Сначала мы получаем структуру каждого письма с помощью функции imap_fetchstructure() . Это будет возвращать объект, как показано ранее. Затем мы вызываем функцию getAttachments() , которая определит вложенные части.

Сначала мы проверим части для текущей электронной почты, а затем мы должны пройти через каждую часть рекурсивно. Нам нужно изменить номер части и передать рекурсивный вызов. Смотрите как номера под-частей разбиты на пункты сегментов. Если у вас есть 3 уровня частей, это будет что-то вроде 1.0.1.

Если частей больше нет, мы проверяем, был ли доступен параметр и его значение является “ATTACHMENT” “ВЛОЖЕНИЕ”. В таких ситуациях мы получаем структуру данной части с помощью imap_bodystruct() . Оба imap_bodystruct() и imap_fetchstructure() обеспечивает такой же результат. Единственная разница между ними в том, что мы можем использовать imap_bodystruct() для получения конкретной информации, а не всей структуры.

Теперь у нас есть список частей для данной электронной почты, и мы отобразим ссылки для скачивания вложений:

Скачать вложения

Чтобы скачать вложение, необходим UID отправителя письма, номер части и тип кодировки вложения. Я включил эти параметры в ссылке, созданной выше. После нажатия на ссылку, может быть вызвана следующая функция:

Сначала мы должны получить структуру данной части, чтобы определить название вложения, которое делается с imap_bodystruct() . Вы видите, что используется imap_msgno() , чтобы получить порядковый номер UID; это потому, что imap_bodystruct() не понимает UID, поэтому мы должны преобразовать UID в порядковый номер.

Далее мы получим содержимое вложенного с помощью imap_fetchbody() . Он будет получать только содержание данной части числа. Затем мы используем соответствующею функцию содержания для декодирования в соответствии с кодировкой типа данных привязанности к расшифровке.

И, наконец, мы выводим вложение с соответствующими заголовками, поэтому браузер будет скачивать файл.

Заключение

На этом мы завершаем изучение функции IMAP PHP, теперь у вас достаточно знаний, для сборки простой электронной почты.

Termin

Веб-дизайнер, цифровая графика, разработка веб-приложений, а также SEO, создаю сайты в качестве фрилансера. Основное содержание, статьи и обзоры инновационных веб-технологий и проектов.

php imap — imap_setflag_full — php

У меня этот код работает отлично. Единственная проблема, с которой я столкнулся, — это imap_setflag_full($imap,$i, «Seen»); что флаг SEEN, похоже, не устанавливает.

«; if (isset($header->from[0]->personal)) < $personal = $header->from[0]->personal; > else < $personal = $header->from[0]->mailbox; > $email = «$personal from[0]->mailbox.»@».$header->from[0]->host.» >»; echo «On $prettydate, $email said «$body».n
«; imap_setflag_full($imap,$i, «Seen»); // Set the flag «Seen» > imap_close($imap);

Я напечатал головы после того, как попытался установить флаг, и он не появляется. однако, если я устал imap_setflag_full($imap,$i, «Flagged»); флаговый парафетер будет F, и если поместить imap_clearflag_full($imap,$i,Flagged) F будет удален. единственная проблема — SEEN и UNSEEN. любая помощь приветствуется.

    3 1
  • 18 авг 2020 2020-08-18 20:47:09
  • NMF SDF
Илон Маск рекомендует:  Что такое код hw_api_object &#62;assign

1 ответ

  1. Начните использовать функцию imap, которая возвращает массив сообщений
  2. Начните перехватывать возвращаемые значения imap, чтобы увидеть, есть ли ошибка.
  3. Попробовать переключиться на UID будет моим последним предложением.

У меня была та же проблема, когда я смешивал номер сообщения с UID сообщения, и именно поэтому Unseen не был (всегда) установлен. Это не похоже на ваше дело.

imap_setflag_full не может установить адрес электронной почты как прочитанный gmail

У меня есть скрипт, который проверяет почтовый ящик пользователей и обрабатывает эти письма в системе билета. В 99% случаев скрипт работает нормально. Время от времени я сталкиваюсь с электронным письмом, которое не может быть помечено как прочитанное после обработки. Я не использовал флаг imap_setflag_full , чтобы пометить его как прочитанный, он делает это автоматически. Пока это происходит с Gmail.

Поэтому, даже пытаясь использовать imap_setflag_full , письмо по-прежнему не становится помеченным как прочитанное. Единственное, что я могу сделать, это вручную войти в папку «Входящие» и удалить электронную почту.

Что такое код imap_setflag_full

(PHP 3>= 3.0.3, PHP 4)

imap_setflag_full — устанавливает флаги сообщений.

Описание

string imap_setflag_full (int stream, string sequence, string flag, string options)

Эта функция добавляет специфицированный флаг к набору флагов для сообщений специфицированной последовательности.

Флаги, которые можно установить: «\\Seen», «\\Answered», «\\Flagged», «\\Deleted» и «\\Draft» (как определено в RFC2060).

Аргумент options это битовая маска с одним значением или более:

ST_UID последовательность аргументов содержит UID’ы вместо номеров последовательности.

imap_setflag_full не в состоянии установить электронную почту, как читать Gmail

У меня есть сценарий , который проверяет почтовый ящик пользователя и обрабатывает эту электронную почту в систему билета. Для 99% времени , скрипт работает нормально. После того, как в то время я сталкиваюсь по электронной почте , что не получает помеченную как читать после обработки. Я не используя imap_setflag_full флаг , чтобы пометить его как прочитанный, он делает это автоматически. До сих пор это происходит с Gmail.

Таким образом , даже пытаться использовать imap_setflag_full электронную почту по- прежнему не получает помеченный как читать. Единственное , что я могу сделать это вручную зайти в почтовый ящик и удалить электронную почту.

Кто-нибудь есть какие-либо идеи, почему это происходит?

Вы не используете UIDs, так что не установлен флаг ST_UID на imap_setflag_full. Вы используете номер сообщений везде:

Что такое код imap_setflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_setflag_full — Sets flags on messages

Description bool imap_setflag_full ( resource imap_stream, string sequence, string flag [, int options] )

Causes a store to add the specified flag to the flags set for the messages in the specified sequence .

Parameters

An IMAP stream returned by imap_open() .

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

The flags which you can set are \\Seen , \\Answered , \\Flagged , \\Deleted , and \\Draft as defined by RFC2060 .

A bit mask that may contain the single option:

ST_UID — The sequence argument contains UIDs instead of sequence numbers

Илон Маск рекомендует:  Java обгоняет по производительности c

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example 1. imap_setflag_full() example

$status = imap_setflag_full ( $mbox , «2,5» , «\\Seen \\Flagged» );

echo gettype ( $status ) . «\n» ;
echo $status . «\n» ;

не imap_setflag_full работать, чтобы изменить состояние почты

Я использую ниже код, чтобы прочитать мой почтовый ящик GMAIL и он работает отлично для чтения.

Но вопрос некоторые из почты не установлены, как видно, так что каждый раз, когда приходит.

По моим наблюдениям, сообщений, которые не меняют там флага с невидимого увиденным является письмо, которые содержат некоторый HTML в нем.

Это линия, я использую, чтобы вручную изменить статус

видел состояние всегда возвращает 1 в качестве результата, но в почтовом ящике он показывает как непрочитанные.

Вы используете порядковые номера сообщений (MSNs), но обеспечивая ST_UID флаг ваших функций флага, изменяя их использовать UIDs. Большинство MSNs не будет вообще быть действительной UIDs.

Либо использовать UIDs всюду ( FT_UID и , ST_UID и как ко всем функциям) или MSNs везде никогда (не используйте UID флаги, и ничего не удалялись , а зацикливание.)

Если вы используете версию UID поиска, вам не нужно звонить imap_uid .

Что такое код imap_setflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_setflag_full — Sets flags on messages

Description bool imap_setflag_full ( resource stream, string sequence, string flag [, string options] )

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence .

The flags which you can set are «\\Seen», «\\Answered», «\\Flagged», «\\Deleted», and «\\Draft» (as defined by RFC2060).

options are a bit mask and may contain the single option:

ST_UID — The sequence argument contains UIDs instead of sequence numbers

Пример 1. imap_setflag_full() example

$status = imap_setflag_full ( $mbox , «2,5» , «\\Seen \\Flagged» );

echo gettype ( $status ) . «\n» ;
echo $status . «\n» ;

Что такое код imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 )

imap_setflag_full — Sets flags on messages

Description bool imap_setflag_full ( resource stream, string sequence, string flag, string options)

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence.

The flags which you can set are «\\Seen», «\\Answered», «\\Flagged», «\\Deleted», and «\\Draft» (as defined by RFC2060).

The options are a bit mask with one or more of the following:

ST_UID The sequence argument contains UIDs instead of
sequence numbers

Что такое код imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_setflag_full — Sets flags on messages

Description bool imap_setflag_full ( resource stream, string sequence, string flag [, string options] )

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence .

The flags which you can set are «\\Seen», «\\Answered», «\\Flagged», «\\Deleted», and «\\Draft» (as defined by RFC2060).

options are a bit mask and may contain the single option:

ST_UID — The sequence argument contains UIDs instead of sequence numbers

Example 1. imap_setflag_full() example

$status = imap_setflag_full ( $mbox , «2,5» , «\\Seen \\Flagged» );

echo gettype ( $status ) . «\n» ;
echo $status . «\n» ;

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL