Jak pobrać wszystkie wiadomości e-mail z serwera POP3 do jednego pliku tekstowego za pomocą mailx?


5

Chciałbym pobrać wszystkie wiadomości e-mail z mojego starego serwera pocztowego. Używa POP3 i interesują mnie wiadomości e-mail w folderach „Skrzynka odbiorcza” i „Wysłane”. Po pobraniu wszystkich wiadomości chciałbym utworzyć skrypt, który wyświetla listę wszystkich wiadomości e-mail między moim adresem e-mail a jednym określonym adresem e-mail w sposób chronologiczny w jednym pliku tekstowym.

Jednak na początku myślę, że muszę pobrać wszystkie wiadomości do jednego pliku z nagłówkami, w tym datami, a następnie utworzyć skrypt sortujący. Jak do tego podejść?

Użyłem mailx w skryptach do wysyłania maili, ale czy można użyć mailx do pobrania wszystkich maili z serwera POP3 do jednego pliku?


1
POP3 obsługuje tylko skrzynkę odbiorczą, bez dodatkowych folderów na serwerze. ( RFC 1939 Sec 8)
200_success

Odpowiedzi:


3

Tradycyjna pocztax nie obsługuje IMAP ani POP, ale ta, która jest dostarczana z Linuksem, obsługuje.

W przypadku konkretnego problemu zalecamy użycie fetchmailzamiast tego. Możesz użyć tej --mdaopcji, aby fetchmailwykonać wybrany skrypt dla każdej pobranej wiadomości. Może nawet przekazywać adresy Od i Do jako parametry do skryptu, jeśli używasz %Fi %Tjako symbole zastępcze w wierszu poleceń.

Najpierw utwórz mailsorterskrypt:

#!/bin/sh

dest_mbox="$1"
from="$2"
to="$3"

case "$from-$to" in
  someone@example.net-myname)
     echo "From $from  `date`" >> "$dest_mbox"
     cat >> "$dest_mbox"
     ;;
  *)
     cat > /dev/null
     ;;
esac

Następnie uruchomić fetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

Podczas testowania tego rozwiązania, dają i flagi, aby upewnić się, że nie przypadkowo usunąć pocztę.fetchmail--all--keep


Dzięki! Fetchmailbyło dokładnie tym, czego szukałem. Jest jednak jeden problem - jeśli pobieram całą pocztę przez POP3, nadal pobieram tylko te, które widzę w folderze „Skrzynka odbiorcza” w interfejsie internetowym. Chciałbym jednak uzyskać dostęp do poczty e-mail również w folderach „Wyślij” i „Usunięte”. czy to możliwe?
Martin

1
POP3 nie ma pojęcia o żadnym folderze innym niż Inbox. Twoje foldery wysłane i usunięte prawdopodobnie znajdują się lokalnie na kliencie.
200_success

200_sukces, ok, rozumiem. Z tego konta e-mail korzystałem jednak tylko przez interfejs sieciowy. Znalazłem jeden sposób na uzyskanie dostępu do folderów „Wysłane” i „Usunięte” poprzez skopiowanie wiadomości e-mail z tych folderów do „Skrzynki odbiorczej”. Inną i bardziej rozsądną opcją byłoby prawdopodobnie użycie IMAP, jeśli mój dostawca poczty internetowej obsługuje go, ponieważ IMAP powinien obsługiwać inne foldery oprócz „Skrzynki odbiorczej”?
Martin

IMAP obsługuje wiele folderów. Użyj fetchmail --folder Sent(lub fetchmail INBOX.Sentz układem folderów niektórych serwerów IMAP).
200_success
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.