Unix 서버에서 읽지 않은 이메일 목록 가져오기

Unix 서버에서 읽지 않은 이메일 목록 가져오기

우리는 Unix 서버를 사용하여 읽지 않은 이메일 목록을 얻으려고 합니다 mailx -L. 단, 이메일 제목이 25자를 초과하면 잘립니다.

이 문제를 어떻게 해결하나요?

답변1

mailx표준 출력의 열 수에 맞게 출력을 자릅니다. 열 수를 얻으려면 ioctl(1, TIOCGWINSZ, ...)먼저 터미널 창 크기를 시도하고 실패하면 COLUMNS환경 변수를 사용합니다. 그러니 이것을 시도해 보세요:

COLUMNS=999 mailx -L | cat

거기에 표준 출력이 터미널이 아니므로 ioctl이 실패하게 됩니다 |cat.mailx

답변2

메일은 일반적으로 텍스트 파일(사서함또는메일 디렉토리형식)이므로 grep, sed, awk또는 모든 스크립트 언어를 사용하여 처리할 수 있습니다. 메일의 일반적인 위치는 /var/mail이거나 /var/spool/mail사용자 홈 디렉터리의 파일/디렉터리입니다.

메시지 제목을 추출하려면 다음을 사용할 수 있습니다 grep.

grep -E '^Subject: ' /path/to/mail

"제목:" 부분을 제거하려면 다음과 같이 파이프하세요 sed.

...| sed -e 's/^Subject: //'

읽지 않은 메시지 필터링은 읽음/읽지 않음 상태가 별도의 메시지 헤더 줄에 저장되기 때문에 더 복잡합니다. awk, Perl, Python 등으로 작성된 약간 더 복잡한 스크립트가 필요할 것 같습니다. 이에 대해 테스트된 솔루션이 준비되어 있지 않습니다.

관련 정보