christianbur / getmail

18 stars 6 forks source link

email recovery issue with certain attached files => Special Characters in file name ? / Special encoding character file ? #18

Closed Phil12n closed 7 months ago

Phil12n commented 10 months ago

Hi,

I've been using getmail for at least one year and it does the job except when I receive certain emails with files attached. I thought this was due to the size of the attached files, but that's not the case.

So I tried to analyze this problem differently and each time there is at least one attached file (pdf or zip or pptx...) and I suspect a problem with special characters like accents i.e. é. è [blank space]... used directly in the attached filename and/or the encoding character file used : recovery most often fails with Unix LF ANSI or Macintosh CR ANSI files while it seems to work better with Unix LF UTF8.

When this hangs, I move all pending emails from the inbox to a subfolder in the ISP's webmail client, then put all emails back into the inbox except the email with the problematic attachment, and getmail works instantly!

When I replace the first unrecovered email with getmail (the one that blocked the system) in the ISP webmail inbox it blocks again !

Thank you in advance for your help in solving this problem which I think comes from character sets.

Phil

christianbur commented 10 months ago

Hi, please check first if the following things are still in your docker-compose.yml

If this is the case, this could be responsible for the error.

Email attachments are generally in Mime format and therefore Base64 encoded, so getmail should not see any special character at all. The problem is so individual that I can't analyze it without the email from you, can you forward the email to me?

Phil12n commented 10 months ago

Hi Here is my docker-compose.yml :

version: '2.4'
services:

    getmail:
      image: cb/getmail
      build: ./Dockerfiles
      environment:
#        - TZ=${TZ}
        - TZ="Europe/Paris"
      volumes:
        - ./conf/settings.ini:/app/settings.ini:ro
      restart: always
      mem_limit: 100m
      mem_reservation: 20m
      networks:
        network-getmail:

#docker network create --driver=bridge --ipv6 --subnet=fdcb:9c90:23:11::/64 --gateway=fdcb:9c90:23:11::1 --subnet=172.23.11.0/24 --gateway=172.23.11.1 -o "com.docker.network.bridge.name"="br-getmail" network-getmail     
networks:
  network-getmail:
    external: true                

We talked about message size in a previous ticket "Maximum message size" but I really think that's not the case.

For information, I noticed a difference of -1 hour between the system date : date says Mon Jan 22 18:09:54 CET 2024 and getmail logs : /opt/getmail# docker-compose logs says getmail-getmail-1 | 2024-01-22 17:09:54... !

I tried to reinstall all getmail packages but I noticed that the repository was moved and https://github.com/christianbur/docker_projects#master in the latest docker-compose.yml is a broken link.

Anyway, if you want to test my issue, could you give me an email address? I can send you an email with a PDF attachment that blocks getmail from working.

Thank you for everything Phil

christianbur commented 10 months ago

Please remove the lines:

and restart the Conatiner with "docker compose down && docker compose up -d".

difference of -1 hour : This is most likely due to different time zones.

reinstall, please use this one: https://github.com/christianbur/getmail/blob/master/docker-compose.yml

my email: mail (at) christian - burmeister dot de

Phil12n commented 10 months ago

I sent you en email with pdf attachement

I tried to reinstall with #https://github.com/christianbur/getmail/blob/master/docker-compose.yml and i have this error :

WARN[0001] The "TZ" variable is not set. Defaulting to a blank string.
[+] Building 2.2s (1/1) FINISHED
 => ERROR [internal] load git source https://github.com/christianbur/docker_projects.git#master                                            2.0s
------
 > [internal] load git source https://github.com/christianbur/docker_projects.git#master:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: failed to load cache key: repository does not contain ref master, output: ""
christianbur commented 10 months ago

The TZ variable is simply not set.

environment:
# - TZ=${TZ}
        - TZ="Europe/Paris"

I can download the pdf file without any problem, just tried with two mail accounts, the problem is most likely due to the following entries.

mem_limit: 100m
      mem_reservation: 20m
Phil12n commented 10 months ago

I did with :

 environment:
# - TZ=${TZ}
        - TZ="Europe/Paris"

and the TZ variable seems to be ok

After deleting

mem_limit: 100m
      mem_reservation: 20m

problematic emails are all recovered by getmail!

Thank you so much !

To start with a clean installation could you check the links of the latest getmail package? Line 8 in docker-compose.yml the link seems to be wrong.

https://github.com/christianbur/getmail/blob/master/docker-compose.yml

I would like to reinstall the latest version.

THANKS

christianbur commented 10 months ago

fixed, please test.

Phil12n commented 10 months ago

Everything is OK now Plus clean installation Thank you so much ! Phil

Phil12n commented 10 months ago

You can close this ticket ang good night !