Another insight: when logging the outgoing mails with plugin WP Mail Logging https://wordpress.org/plugins/wp-mail-logging/ I can see that in case of an error the attachment is tried to be read from a wrong location:
/dlm_uploads/1970/01/myfile.pdf
instead of where it is really saved:
/dlm_uploads/2019/05/myfile.pdf
Some fallback to the beginning of unix calculation of times at work, I guess.
Getting closer: there is a line $fileDate = date('Y/m', strtotime($fileDate));
converting a date string to a part of file path.
Printed the variable before and after, and from the debug.log I can see:
16. Mai 2019 converts to 1970/01
13. September 2018 converts to 2018/09
Both date strings are German, but the second one is identical to English. So the date strings that are different in German cause the error.
The php function only accepts english date strings, see https://www.php.net/manual/en/function.strtotime.php
Thank you, plugin developers.
Don’t ask for my workaround. It’s ugly. It works. Still thinking about a proper fix.