core: imap_content sensor not updating

The problem

  1. My IMAP sensor “sensor.imap_aaronautomation88” is updating to show 1 new email is present: image

  2. However, when I look at my imap_content sensor “sensor.imap_content”, it is not updating the show the latest email. If I go to the Home Assistant devices page, go to the IMAP entity, and hit “reload”, the “sensor.imap_content” instantly updates and my automations begin to trigger: image

  3. After a reboot of Home Assistant, it works without having to reload the integration for 1 email. Then, when the 2nd email comes in, it stops updating the “sensor.imap_content”. But then other times, it seems to work fine randomly.

What version of Home Assistant Core has the issue?

2023.5.3

What was the last working version of Home Assistant Core?

2023.5.2

What type of installation are you running?

Home Assistant OS

Integration causing the issue

imap

Link to integration documentation on our website

https://www.home-assistant.io/integrations/imap/

Diagnostics information

No response

Example YAML snippet

This is the code in my configurations.yaml file for the "sensor.imap_content":

template:
  - trigger:
      - platform: event
        event_type: "imap_content"
        id: "custom_event"
    sensor:
      - name: imap_content
        state: "{{ trigger.event.data['subject'] }}"
        attributes:
          message: "{{ trigger.event.data['text'] }}"
          server: "{{ trigger.event.data['server'] }}"
          username: "{{ trigger.event.data['username'] }}"
          search: "{{ trigger.event.data['search'] }}"
          folder: "{{ trigger.event.data['folder'] }}"
          sender: "{{ trigger.event.data['sender'] }}"
          date: "{{ trigger.event.data['date'] }}"
          subject: "{{ trigger.event.data['subject'] }}"
          to: "{{ trigger.event.data['headers']['Delivered-To'][0] }}"
          subject2: "{{ trigger.event.data['headers']['Subject'][0] }}"
          return_Path: "{{ trigger.event.data['headers']['Return-Path'][0] }}"
          received-first: "{{ trigger.event.data['headers']['Received'][0] }}"
          received-last: "{{ trigger.event.data['headers']['Received'][-1] }}"

Anything in the logs that might be useful for us?

2023-05-15 07:14:18.016 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF8 OK Success\r\n'
2023-05-15 07:14:18.016 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF8 OK Success'
2023-05-15 07:14:18.023 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Message processed, sender: email1@gmail.com, subject: subject 5
2023-05-15 07:14:18.023 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:14:18.051 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF9 IDLE\r\n'
2023-05-15 07:14:18.170 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:14:18.170 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'
2023-05-15 07:14:33.186 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* 1 FETCH (UID 714 FLAGS (\\Seen))\r\n'
2023-05-15 07:14:33.187 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DONE\r\n'
2023-05-15 07:14:33.310 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF9 OK IDLE terminated (Success)\r\n'
2023-05-15 07:14:33.311 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF9 OK IDLE terminated (Success)'
2023-05-15 07:14:33.314 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF10 NOOP\r\n'
2023-05-15 07:14:33.441 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF10 OK Success\r\n'
2023-05-15 07:14:33.441 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF10 OK Success'
2023-05-15 07:14:33.443 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF11 SEARCH CHARSET utf-8 UnSeen UnDeleted\r\n'
2023-05-15 07:14:33.572 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* SEARCH\r\nDFEF11 OK SEARCH completed (Success)\r\n'
2023-05-15 07:14:33.573 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF11 OK SEARCH completed (Success)'
2023-05-15 07:14:33.575 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:14:33.583 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF12 IDLE\r\n'
2023-05-15 07:14:33.706 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:14:33.706 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'
2023-05-15 07:14:38.715 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* 1 EXPUNGE\r\n* 0 EXISTS\r\n'
2023-05-15 07:14:38.716 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DONE\r\n'
2023-05-15 07:14:38.837 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF12 OK IDLE terminated (Success'
2023-05-15 07:14:38.838 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b')\r\n'
2023-05-15 07:14:38.838 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF12 OK IDLE terminated (Success)'
2023-05-15 07:14:38.843 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF13 NOOP\r\n'
2023-05-15 07:14:38.966 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF13 OK Success\r\n'
2023-05-15 07:14:38.966 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF13 OK Success'
2023-05-15 07:14:38.970 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF14 SEARCH CHARSET utf-8 UnSeen UnDeleted\r\n'
2023-05-15 07:14:39.090 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* SEARCH\r\nDFEF14 OK SEARCH complet'
2023-05-15 07:14:39.090 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'ed (Success)\r\n'
2023-05-15 07:14:39.090 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF14 OK SEARCH completed (Success)'
2023-05-15 07:14:39.091 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:14:39.092 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF15 IDLE\r\n'
2023-05-15 07:14:39.217 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:14:39.217 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'
2023-05-15 07:15:24.231 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* 1 EXISTS\r\n'
2023-05-15 07:15:24.233 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DONE\r\n'
2023-05-15 07:15:24.356 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF15 OK IDLE ter'
2023-05-15 07:15:24.357 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'minated (Success)\r\n'
2023-05-15 07:15:24.357 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF15 OK IDLE terminated (Success)'
2023-05-15 07:15:24.360 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF16 NOOP\r\n'
2023-05-15 07:15:24.481 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF16 OK Success\r\n'
2023-05-15 07:15:24.482 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF16 OK Success'
2023-05-15 07:15:24.486 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF17 SEARCH CHARSET utf-8 UnSeen UnDeleted\r\n'
2023-05-15 07:15:24.618 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* SEARCH 1\r\nDFEF17 OK SEARCH compl'
2023-05-15 07:15:24.618 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'eted (Success)\r\n'
2023-05-15 07:15:24.618 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF17 OK SEARCH completed (Success)'
2023-05-15 07:15:24.624 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:15:24.635 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF18 IDLE\r\n'
2023-05-15 07:15:24.764 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:15:24.764 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'
2023-05-15 07:15:44.781 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* 1 FETCH (UID 715 FLAGS (\\Seen))\r'
2023-05-15 07:15:44.781 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'\n'
2023-05-15 07:15:44.782 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DONE\r\n'
2023-05-15 07:15:44.909 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF18 OK IDLE terminated (Success)\r\n'
2023-05-15 07:15:44.909 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF18 OK IDLE terminated (Success)'
2023-05-15 07:15:44.910 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF19 NOOP\r\n'
2023-05-15 07:15:45.034 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF19 OK Success\r\n'
2023-05-15 07:15:45.035 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF19 OK Success'
2023-05-15 07:15:45.036 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF20 SEARCH CHARSET utf-8 UnSeen UnDeleted\r\n'
2023-05-15 07:15:45.165 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* SEARCH\r\nDFEF20 OK SEARCH complet'
2023-05-15 07:15:45.167 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'ed (Success)\r\n'
2023-05-15 07:15:45.167 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF20 OK SEARCH completed (Success)'
2023-05-15 07:15:45.169 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:15:45.184 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF21 IDLE\r\n'
2023-05-15 07:15:45.306 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:15:45.306 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'
2023-05-15 07:15:55.324 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* 1 FETCH (UID 715 FLAGS ())\r\n'
2023-05-15 07:15:55.326 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DONE\r\n'
2023-05-15 07:15:55.446 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF21 OK IDLE terminated (Success'
2023-05-15 07:15:55.447 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b')\r\n'
2023-05-15 07:15:55.447 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF21 OK IDLE terminated (Success)'
2023-05-15 07:15:55.449 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF22 NOOP\r\n'
2023-05-15 07:15:55.570 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'DFEF22 OK Success\r\n'
2023-05-15 07:15:55.570 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF22 OK Success'
2023-05-15 07:15:55.571 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF23 SEARCH CHARSET utf-8 UnSeen UnDeleted\r\n'
2023-05-15 07:15:55.699 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'* SEARCH 1\r\nDFEF23 OK SEARCH compl'
2023-05-15 07:15:55.700 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'eted (Success)\r\n'
2023-05-15 07:15:55.700 DEBUG (MainThread) [aioimaplib.aioimaplib] tagged status b'DFEF23 OK SEARCH completed (Success)'
2023-05-15 07:15:55.701 DEBUG (MainThread) [homeassistant.components.imap.coordinator] Manually updated imap data
2023-05-15 07:15:55.709 DEBUG (MainThread) [aioimaplib.aioimaplib] Sending : b'DFEF24 IDLE\r\n'
2023-05-15 07:15:55.834 DEBUG (MainThread) [aioimaplib.aioimaplib] Received : b'+ idling\r\n'
2023-05-15 07:15:55.835 DEBUG (MainThread) [aioimaplib.aioimaplib] continuation line -- assuming IDLE is active : b'+ idling'

Additional information

redacted email addresses for privacy

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 32 (14 by maintainers)

Most upvoted comments

Thanks for your help. I have opened a PR that should fix your issue. It will ensure that the last ID is reset to None when there is an update showing now messages. This will en sure the event is re-triggered when a new message comes in that might have the same UID (e.g. 1)

Thanks for hanging in there to understand!

Can you test without clearing all messages (leave at least 1 message)

Yes, if I leave 1 message there, and send a new one, it comes in and updates from 1 to 2, and displays the imap_content attributes for the new email. If I clear out the oldest email and go from a count of 2 to 1 again, and send a new email, the count goes from 1 to 2 again, and imap_content updates correctly. So this may be an issue when the count is going from 0 to 1.