Nie widzę problemu z używaniem set bouncemail
. Zgodnie ze stroną podręcznika:
set bouncemail Direct error mail to the sender (default)
set no bouncemail Direct error mail to the local postmaster
(as per the ’postmaster’ global option above).
Według mojego zrozumienia komentarz "Avoid loss on 4xx errors."
może oznaczać:
Błędy rozpoczynające się od liczby 4
są błędami tymczasowymi. Błędy 4xx
nie są błędami krytycznymi i oznaczają „Mam obecnie mały problem i nie mogę przetworzyć Twojej wiadomości, powinieneś spróbować później”. Przykładem tego błędu może być 451 Temporary lookup failure
. W takim przypadku serwer nadawcy (jeśli poprawnie skonfigurowany dla RFC) spróbuje dostarczyć wiadomość ponownie później. Jeśli do czasu następnej próby problem na serwerze odbierającym zostanie rozwiązany - wiadomość zostanie dostarczona. Jeśli problem będzie się powtarzał - to znowu da 451 Temporary lookup failure
. Ten scenariusz będzie trwał do momentu wygaśnięcia wiadomości (jest to osobne ustawienie dla serwera poczty).
Jak to można zastosować do naszej sytuacji. Powiedzmy, że czyjś serwer nie jest poprawnie skonfigurowany i dlatego po otrzymaniu 4xx
błędu nie spróbuje później - po prostu usunie wiadomość. I wysyła ci e-mail, gdy masz tymczasowy problem z wyszukiwaniem. Twoja postfiks zwraca 451
błąd. Serwer nadawcy otrzymuje 451
błąd i zatrzymuje wszelkie dalsze próby jego dostarczenia (co jest NIEPRAWIDŁOWE). W tym momencie straciłeś swój list e-mail, ponieważ miałeś tymczasowy problem ORAZ z powodu niewłaściwej konfiguracji innego serwera.
Dlatego Fetchmail stara się uniknąć problemu, nie odbijając wiadomości e-mail w przypadku 4xx
błędów. Ponieważ jest już pobrany i jest już na twoim komputerze, sensowne jest zachowanie wiadomości i nie odesłanie jej z powrotem.
Po prostu włącz set bouncemail
i nie martw się o nic, ponieważ większość serwerów pocztowych ma prawidłową konfigurację (zgodnie z RFC) i spróbuje ponownie dostarczyć wiadomości. Będziesz miał 1-5% szans na utratę 1 wiadomości e-mail na chwilę z niewłaściwie skonfigurowanego serwera pocztowego.
Na to:
Przy dalszym myśleniu wydaje się głupie pobieranie tak dużych wiadomości, ich przetwarzanie, a następnie ich odbijanie. fetchmail ma opcję ograniczenia rozmiaru wiadomości do pobrania, ale nie mogę wymyślić, w jaki sposób wysłać wiadomość odesłaną w tym przypadku (i wiadomość pozostaje na serwerze). Czy jest jakiś sposób na załatwienie sprawy?
Fetchmail musi pobrać wiadomość, jeśli postfix ma ją przetworzyć. Jeśli fetchmail nie pobierze wiadomości - postfix nigdy jej nie zobaczy. Wątpię, aby fetchmail poinformował o tym nadawcę. Jeśli chcesz poinformować o tym nadawcę - musisz mieć fetchmail, aby pobrać wiadomość i przekazać ją do Postfiksa.
Inna możliwa opcja - fetchmail pobiera skądś wiadomości (IMAP / POP3). Jeśli masz kontrolę nad tym kontem POP3 - ustaw tam limit, a on również będzie działał.