Outlook/Thunderbird 클라이언트와 Linux 서버가 있는 로컬 네트워크가 있는 상황에서 : 수신 메일을 일부 수정하여 보내는 메일에 보낸 사람의 서명을 추가하는 것이 sendmail
가능합니까 ? sendmail's
milter
서버에서 서명을 중앙 집중화하는 것이 유용할 수 있습니다.
다음과 같이 진행하세요:
1) 이용자는 이메일을 작성하여 발송합니다. MUA는 나중에 대체되는 일부 "서명" 매직 텍스트, 즉 " x-replace-signature-x
"를 설정하므로 사용자가 원하는 위치(인용 텍스트 아래 또는 응답 아래)에 해당 서명을 추가하도록 MUA를 구성해야 합니다.
2) 메일 도착 sendmail's
MSP
대기열
3) Sendmail
"" 헤더에서 사용자 이름을 가져옵니다 From
. 즉,[email protected]
4) 파일 시스템 (내장된 이미지가 포함될 수 있음) Sendmail
에서 해당 사용자의 서명을 찾습니다 .html
/var/lib/sendmail/signatures/user1.html
5) Milt는 " "를 찾아 x-replace-signature-x
해당 줄을 다음으로 바꿉니다./var/lib/sendmail/signatures/user.html
6) sendmail's
MTA
메일을 보냅니다(저의 경우 스마트 호스트로).
나는 그러한 기능을 알지 못하기 때문에 정규식 일치를 위해 밀터를 사용할 생각입니다.
답변1
@thrig가 제안한 것처럼 MIMEDefang이 좋은 방법이며 많은 작업이 필요하지만 IMHO는 노력할 가치가 있습니다.
대부분의 filter_end()
사람들은 다음 기능 중 하나를 사용합니다.
append_text_boilerplate($entity, $boilerplate, $all)
append_html_boilerplate($entity, $boilerplate, $all)
비록 이러한추가의교체하는 대신 텍스트를 사용하세요. 지정한 작업을 정확하게 수행하려면 filter_part()
핸들러를 사용할 수 있습니다. 한 가지 방법은 action_external_filter()
수정하려는 섹션을 호출하는 것입니다 (MIME 구성이 없는 첫 번째 text/plain 및 text/html 섹션은 일반적으로 좋은 선택입니다). 외부 명령을 통해 섹션을 필터링합니다. HTML에 이미지를 추가하려면 해당 이미지를 새 섹션으로 추가한 다음 CID를 통해 참조해야 합니다.
메시지를 수정하는 일반적인 방법은 전화를 거는 것입니다. 이것은 말 replace_entire_message()
처럼 간단 하지 않습니다 filter_end()
. 현재 메시지를 MIME::Entity로 복사하고, 본문의 일부를 수정하고, 전체 메시지 본문을 새 MIME::Entity로 바꿔야 합니다.
이렇게 하면 시작됩니다. https://stuff.mit.edu/~jik/software/mailman_mimedefang/
대안으로, 낮은 기술 솔루션은 즉각적인 전달 대신 sendmail 스풀(지연된 전달)을 사용하고 -odd
대기열에 있는 df 파일을 수정하는 것입니다(때때로 일반 텍스트로 처리하면 작동할 수 있지만 철저하게 하려면 MIME으로 처리해야 함). qf/df 쌍은 새로운 작동 스풀( re-mqueue.pl
아마도 있을 수 있음)에 연결됩니다.