정규식을 기반으로 Postfix 이메일 전달

정규식을 기반으로 Postfix 이메일 전달

우리는 PHP를 사용하여 티켓팅 시스템을 구축하고 있습니다. 이제 고객 응답을 식별하는 데 문제가 있습니다.

  • 사용자가 삭제할 수 있으므로 주제에 ID를 입력하면 작동하지 않습니다.
  • 일부 메일 클라이언트에서는 ID를 제거하기 때문에 사용자 정의 헤더에 ID를 게시하면 작동하지 않습니다.
  • 메시지 본문에 코드를 게시하는 것도 제목과 마찬가지로 사용자가 삭제할 수 있기 때문에 작동하지 않습니다.

이메일 주소에 ID를 넣는 것을 고려해 봅시다.t<ticketid>@mydomain.com

하지만 이를 다음으로 리디렉션하는 방법을 잘 모르겠습니다.[email protected]

답변1

+내 제안은 스타일 하위 주소를 사용하는 것입니다 : support+<ticketid>@mydomain.example. Postfix는 이러한 메시지를 [email protected]하위 주소를 무시하고 에 보낸 것처럼 전달합니다 .

Postfix를 사용하면 사용할 다양한 문자를 정의할 수도 있습니다. recipient_delimiter매개변수를 /etc/postfix/main.cf원하는 값으로 설정합니다 .

recipient_delimiter = +-

이렇게 하면 [email protected], 및 가 [email protected]두 주소를 모두 동일한 방식으로 처리할 수 있습니다.

recipient_delimiter일부 Linux 배포판에는 postfix 설정이 함께 제공되므로 +이미 기본적으로 작동할 수 있습니다.

답변2

virtual_alias_maps[*]를 사용할 수 있습니다:

#virtual_alias_maps = hash:/etc/postfix/aliases
virtual_alias_maps = regexp:/etc/postfix/aliases

그리고 /etc/postfix/aliases를 입력하세요.

/t(.*)@mydomain.com/ [email protected]
/t(.*)@mydomain.com/ support+${1}@mydomain.com
/^(.*)@domain1.com$/ ${1}@domain2.com

그런 다음 명령을 실행하고 virtual.db를 업데이트하십시오.

postmap /etc/postfix/virtual

물론 Ticketid 코드와 정확히 일치하도록(예: 숫자 등) 정규식을 미세 조정하거나 역참조를 사용할 수 있습니다.

[*] postfix에서 가상 도메인을 사용하지 않는 경우 alias_maps를 사용할 수도 있지만 작동 방식이 때때로 혼란스러울 수 있습니다.https://serverfault.com/questions/644306/confused-about-alias-maps-and-virtual-alias-maps그것에 대해

관련 정보