접미사 별칭과 중복 이메일, 수정 방법?


18

다음과 같이 접미사에 별칭을 설정했습니다.

all@mydomain.com:    foo@mydomain.com, bar@mydomain.com ...

이메일이 all@mydomain.com으로 전송되고 해당 별칭의 수신자가 cc : ed 인 경우 (예 : "전체 답장") 이메일은 중복으로 배달됩니다. 예를 들어 전자 메일이 all@mydomain.com으로 전송되고 foo@mydomain.com이 cc : ed 인 경우 두 번 배달됩니다. Postfix FAQ 에 따르면 Postfix는 그룹을 확장하지 않고 전자 메일을 병렬로 보내므로 sendmail보다 빠릅니다. 이제는 훌륭하고 멋지지만 전자 메일을 보내기 전에 실제로 중복 수신자를 제거하도록 Postfix를 구성 할 수 있습니까?

나는 같은 문제가있는 사람들이 인터넷에서 많은 게시물을 찾았지만 아직 답을 찾지 못했습니다. Postfix에서이 작업을 수행 할 수없는 경우 도중에 수행 할 수 있습니까? 사용자 교육을 시도했지만 다소 무의미합니다.

Mac OS X Server 10.6에서 postfix를 실행하고 있는데, amavis는 content_filter로, dovecot는 mailbox_command로 설정되어 있습니다. smtp 전달을 위해 procmail을 content_filter로 설정하려고 시도했지만 (아래 제안에 따라) 제대로 얻을 수없는 것 같습니다. 여러 가지 이유로 표준 OS X 구성을 대체 할 수 없습니다. 즉, 접미사, amavis 및 dovecot가 그대로 유지됩니다. 그러나 원하는 경우 추가 할 수 있습니다.


정말 불가능하다고 생각합니다 ...
Antoine Benkemoun

나는 당신이 옳은 앙투안이라고 믿기 시작했습니다.
Marcus Stade

그것은 현상금의 낭비였습니다.
Marcus Stade

2
이것에 대한 해결책을 찾은 적이 있습니까? 같은 문제가 있습니다.
Tommy Arnold

답변:


4

Postfix는 이메일 구성 방식으로 인해 중복 이메일에 대해 전혀 모릅니다. procmail을 배달 에이전트로 사용하여 제안한 내용을 수행 할 수 있습니다.

기본적으로 클라이언트에서 오는 각 메시지는 고유 한 Message-Id와 함께 제공되어야합니다. 여러 사람에게 전달되는 경우 Message-Id는 같아야하므로 Message-Id본 헤더와 저장 한 헤더 및 해당 목록과 일치하는 헤더를 저장 합니다.

에서 http://novosial.org/procmail/

:0 Wh: msgid.lock
| formail -D 8192 ~/.procmail/msgid.cache

문제를 올바르게 이해하면 Postfix가 전자 메일을 병렬로 전송하기 때문에 Postfix에서 해결할 수 없습니다. 즉, all@mydomain.com을 확장 한 다음 다시 foo@mydomain.com으로 보낸 다음 다시 foo@mydomain.com으로 보냅니다. Procmail 솔루션은 문제가있는 두 전자 메일간에 다른 관련이없는 전자 메일 (다른 메시지 ID가있는)이 전송되어 캐시를 덮어 쓰기하여 중복 전자 메일이 생성되는 경쟁 조건을 유발하지 않을 수 있습니다. 어쨌든 배달?
Marcus Stade

귀하의 제안이 작동하도록 노력하고 있지만 OS X 10.5 이상에서 기본적으로 사용되는 비둘기 장과 이것을 어떻게 결합시키는 지 잘 모르겠습니다.
Marcus Stade

dovecot를 배달 에이전트로 사용하는 경우 procmail을 사용 content_filter하여 글로벌 수준에서 동일한 작업을 수행 할 수 있습니다
Philip Reynolds

나는 아마 여기 내 머리 위에있을 것이라고 고백해야한다. 손가락이 번질 때까지 postfix 및 googling에 대한 구성 매개 변수 페이지에서 눈을 멀게 보았지만이를 구성하는 방법을 알 수없는 것 같습니다. 당신이 알고 있거나 올바른 방향으로 움직일 수있는 모든 자료는 정말 감사하겠습니다!
Marcus Stade

나는 그것이 어떻게 작동하는지 이해한다고 생각하지만 이미 content_filter가 amavis로 설정되어 있습니다. 이것은 일종의 안티 바이러스 검사기 인 것 같습니다. 나는 content_filters를 연결할 수 있다는 것을 읽었지만 다소 직관적이지 않고 문서가 별빛이 아닙니다. 중복 이메일을 걸러내는 것이 얼마나 어려운지 정말 우스운 일입니다. 디자인 desicions에 관계없이, 이것은 상자에 들어 있거나 적어도 monstruos 핵을 필요로하지 않는 것처럼 보입니다.
Marcus Stade

3

방법은 있지만 Postfix 자체를 사용하지 않는 방법이 있습니다.

Sieve의 Pigeonhole 구현으로 합리적으로 최근 Dovecot을 사용하는 경우 온 디맨드 중복 제거에 사용할 수있는 특수 확장이 있습니다. 2.2.18 이전의 Dovecot에서이 확장자 의 이름 은 "vnd.dovecot.duplicate" 이며 기본적으로 비활성화되어 있습니다. 최신 릴리스에서는 확장자가 "duplicate" 이며 이미 활성화되어 있지만 명시 적으로 활성화하지는 않습니다. 해.

/etc/dovecot/conf.d/90-sieve.conf :

plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve

  sieve_before = /mnt/mail/users/global_sieve/deduplicate.sieve
  # sieve_before2 = /mnt/mail/users/global_sieve/antispam.sieve

  sieve_extensions = +vnd.dovecot.duplicate  # for dovecot < 2.2.18
  #sieve_extensions = +duplicate             # for dovecot >= 2.2.18
}

그런 다음 중복 제거 자체를 처리하는 체 (sieve) 스크립트를 만듭니다 (파일 이름을 적절하게 조정할 수 있음).

/mnt/mail/users/global_sieve/deduplicate.sieve :

require "vnd.dovecot.duplicate"; # for dovecot < 2.2.18
# require "duplicate";           # for dovecot >= 2.2.18

if duplicate {
    discard;
    stop;
}

sievec를 사용하여 스크립트를 컴파일하고 dovecot 사용자 가 스크립트를 읽을 수 있는지 확인하십시오 . Dovecot 문서에서 더 많은 것.

Cyrus를 사용하는 경우을 사용하여 활성화 할 수있는 중복 메시지 전달 억제 기능이 있습니다 suppress_duplicates = yes.


이 메커니즘을 지적 해 주셔서 대단히 감사합니다. 그것은 "건초 더미에서 바늘 찾기"느낌입니다.
lkraav

구현 중 발견 : duplicate확장은 사용자 레벨에서 작동합니다. 중앙 fileinto사서함 에서 여러 사용자 To / Cc-d의 중복을 중지하려고했습니다 . 작동하지 않습니다. virtual_alias_maps와 같은 접미사 catch-all 항목 도 설정해야 했으므로 @domain.com catchall@domain.com체 중복 검사가 catchall사용자의 중복 목록에 도달 합니다.
lkraav

예, "건초 더미에서 바늘 찾기"느낌과 매우 유사합니다
Net Runner


0

이것은 오래된 postfix faq에서 나온 것입니다.

Postfix에서 중복 메일 보내기 일부 사람들은 Postfix에서 중복 메시지를 보냅니다. 이는 동일한 사용자에게 도달하는 여러 주소로 하나의 메시지가 발송 될 때마다 발생합니다. 이러한 시나리오의 예는 다음과 같습니다.

  • 하나의 메시지가 사용자와 사용자를 나열하는 별명으로 전송됩니다. 사용자는 메일 사본 하나를 직접 받고 별명을 통해 사본 하나를받습니다.

    • 하나의 메시지가 사용자를 나열하는 여러 별명으로 전송됩니다. 사용자는 각 별명을 통해 메일 사본을 하나씩받습니다.

어떤 사람들은 이것이 "올바른"행동이라고 주장 할 것입니다. 아마도 더 많은 기대와 문제에 대한 문제 일 것입니다.

이것은 Postfix를 느리게해야만 "고정"될 수 있습니다. 위의 예에서 Postfix는 배달을 시작하기 전에 먼저 모든 메일 그룹을 완전히 확장해야합니다. 기본적으로 Postfix는 메일을 다른 목적지로 동시에 배달하며 로컬 배달도 예외는 아닙니다. 이것이 Postfix가 sendmail보다 빠를 수있는 이유입니다.

따라서 의도적으로 그 동작을보고 있습니다. 중복 메시지 ID를 제거 할 수있는 컨텐츠 필터를 찾으면 전달 이벤트 후에이를 제거 할 수 있습니다.

Sendmail은 모든 것을 먼저 확장하고 중복을 제거하기 때문에이 문제가 없습니다.


예, 읽었습니다. 아마도 내 질문을 업데이트했을 것입니다. 설계 상으로, 여전히 문제입니다. 나는 그것이 왜 그렇게 행동하는지 이해하고 Postfix에서 해결책을 찾으려고 노력하는 것은 쓸데없는 것임을 이해합니다. 그러나 Procmail을 사용하여 일부 콘텐츠 필터 솔루션을 생각해 보았지만 제대로 얻을 수없는 것 같습니다. 콘텐츠 필터 나 procmail을 올바르게 이해하지 못했을 가능성이 높습니다. 두 경우 모두 여전히이 문제를 해결하고 싶습니다. 불행히도 설정은 수정할 수 없으며 추가 만 가능합니다. 안타깝게도 postfix 대신 sendmail을 사용할 수 없습니다.
Marcus Stade

더 많은 정보로 질문을 업데이트했지만 솔직히 FAQ 링크가 시작되었습니다. 그래도 유용한 제안에 감사드립니다!
Marcus Stade

그것이 동일한 내용에 대한 링크라는 것을 알지 못했습니다. IT 보안 분야에서 일하면서 무작위 링크를 클릭하는 것에 대해 편집증이됩니다. 중복 메시지의 메시지 ID가 동일한 지 확인할 수 있습니까?
jeffatrackaid 2019

긴 하루를 보내서
jeffatrackaid

중복 메시지의 메시지 ID가 동일한 지 확인할 수 있습니다. duplicate_filter_limit를 설정하면 불행히도 도움이되지 않습니다.
Marcus Stade

0

oficial 솔루션은 여기에 있습니다 .. http://osdir.com/ml/mail.postfix.devel/2007-05/msg00010.html

duplicate_filter_limit (10000) 별칭 (5) 또는 virtual (5) 별칭 확장 또는 showq (8) 대기열 표시 (이전 Postfix 릴리스의 기본 제한은 1000 임)에 대해 수신자 중복 필터가 기억하는 최대 주소 수입니다.

duplicate_filter_style (엄격) 중복받는 사람 필터 정책 : 엄격 또는 실용.


1
이것은 아무것도하지 않는 것 같습니다 ...
grufftech


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.