2017-11-02 26 views
0

이는 피사체에 따라 이메일을 필터링하는 간단한 프록 조리법은 다음과 같습니다Procmail 제조법을 사용하여 base64 인코딩 전자 메일 제목 문자열을 디코딩하는 방법은 무엇입니까?

:0 
* ^Subject: .*Content to filter 
$HOME/Maildir/.INBOX.My_filtered_folder/ 

위의 매우 간단한 프록 조리법은 문제없이 작동합니다. 그래서이 위의 제조법처럼 이메일을 필터링 할 수 있도록 먼저 인코딩 주제 컨텐츠를 디코딩하는 데 필요한

Subject: =?UTF-8?B?VmlldGFsaXMgUG9sZXBl?= 
=?UTF-8?B?bGwaY29tbWVudPVkIG9u?= 
=?UTF-8?B?IGAgbGlubyBCYWPrcGFj?= 
=?UTF-8?B?a2Vw4oDZcyBGZWxpY3l0eSA=?= 
=?UTF-8?B?c3hjckVkLg==?= 

: 그러나 일부 이메일이 예제와 주제의 컨텐츠를 Base64로 인코딩을해야합니다.

주제 내용 (데비안 7)을 필터링하기 전에 ProMail 레시피 내에서 base64로 인코딩 된 전자 메일 제목 문자열을 어떻게 해독 할 수 있습니까?

이 질문은 "Sendmail/procmail - 메일 발신자 및 메일 제목 얻기, utf8 인코딩 문제 [closed]"와 중복되는 질문이 아닙니다. 완전히 다른 질문입니다.

+1

왜 이것을 Perl로 표시 했습니까? 이 필터에서 Perl 코드를 실행할 수 있습니까? Procmail이 Perl로 작성 되었습니까? 아니면 PCRE 형식의 정규식입니까? 첫 번째 옵션 만이 Perl 태그와 관련이 있습니다. – simbabque

+0

[Sendmail/procmail - 메일 발신자 및 메일 제목을 가져오고 utf8 인코딩 문제가 발생할 수 있습니다.] (https://stackoverflow.com/questions/11726354/sendmail-procmail-get-mail-sender-and-mail-subject-utf8) -encoding-issues) – tripleee

+0

예, Procmail에서 Perl 코드를 실행할 수 있습니다. 어쩌면 Perl 스크립트를 사용하는 해결책이있을 수 있습니다. – Monty

답변

2

Linux 및 MacOS 컴퓨터에는 종종 "base64"프로그램이 설치되어 있습니다. 특히 펄에서 같은 일을하려면이 같은 명령 행 호출이 작동합니다 : QWxhZGRpbjpvcGVuIHNlc2FtZQ == 당신의 base64로 문자열입니다

$ perl -MMIME::Base64 -e 'print decode_base64("QWxhZGRpbjpvcGVuIHNlc2FtZQ==");' 

. 내 .procmailrc에서

는,이 같은 일을했을 :

formail -i "Subject: `perl -MMIME::Base64 -e 'print decode_base64($SUBJECT)' `" 

:

SUBJECT=`formail -x Subject:` 

:0 
{ 
# You would use 'fbw' to scan the body 
:0 fw 
# presumably any base64 message will have this content header 
* ^Content-Transfer-Encoding: base64 
| some-external-app 
} 

"일부-외부 응용 프로그램은"base64로 프로그램, 또는 적절한 펄 호출을 할 수있는 곳 또는 기타 등등.

base64 -d 

하지만 YMMV 각 플랫폼 : 내 컴퓨터 (AMD에 NetBSD의 7.1) 64 기수가 너무 좋아 같은 작품에

.

또한 사실 이메일은 종종 야생에서 변형되며 현실과 일치시키기 위해 위의 제조법을 조정해야 할 수도 있습니다. 그러나 잘하면 당신은 아이디어를 얻는다.

의도하지 않은 결과를 추적 할 수 있도록 .procmailrc에 LOGFILE 변수를 설정하는 것이 좋습니다. 더 나은 아직, procmail ;-) 이외의 것을 사용하십시오

+0

감사합니다. 좀 더 자세히 설명해 주시겠습니까? 1. "제목이 $ PATTERN과 일치하면"은 무엇을 의미합니까? 2. "아직은 procmail 외의 것을 사용하십시오."- 불행하게도이 시스템에서이 시스템을 변경할 수는 없습니다. Sieve -하지만 Procmail은 정말 잘 작동합니다. – Monty