다시 쓰기 규칙은 MTA 구성 파일 imta.cnf의 상반부에 표시됩니다. 구성 파일의 각 규칙은 하나의 행으로 나타납니다. 규칙 사이에 주석이 올 수 있지만 빈 행은 허용되지 않습니다. 다시 쓰기 규칙은 빈 행으로 끝나며 그 뒤에 채널 정의가 옵니다. 아래 예는 구성 파일의 다시 쓰기 규칙 섹션을 보여 줍니다.
! test.cnf - An example configuration file. ! ! This is only an example of a configuration file. It serves ! no useful purpose and should not be used in a real system. ! a.com $U@a-host b.org $U@b-host c.edu $U%c@b-daemon d.com $U%d@a-daemon ! Begin channel definitions |
다시 쓰기 규칙은 패턴과 그 뒤에 오는 등가 문자열 또는 템플리트로 구성됩니다. 두 부분을 공백으로 구분해야 하며 각 부분 내에서는 공백이 허용되지 않습니다. 다시 쓰기 규칙의 구조는 다음과 같습니다.
pattern template |
pattern
도메인 이름에서 검색할 문자열을 나타냅니다. 표 11–3에서 패턴은 a.com, b.org , c.edu 및 d.com입니다.
패턴이 주소의 도메인 부분과 일치할 경우 다시 쓰기 규칙이 주소에 적용됩니다. 패턴과 템플리트 사이를 공백으로 구분해야 합니다. 패턴 구문에 대한 자세한 내용은 다시 쓰기 규칙 패턴 및 태그를 참조하십시오.
template
다음 중 하나입니다.
UserTemplate%DomainTemplate@ChannelTag[controls] UserTemplate@ChannelTag[controls] UserTemplate%DomainTemplate[controls] UserTemplate@DomainTemplate@ChannelTag[controls] UserTemplate@DomainTemplate@SourceRoute@ChannelTag[controls]
여기서
UserTemplate는 주소의 사용자 부분이 다시 작성되는 방법을 지정합니다. 대체 시퀀스를 사용하여 원래 주소의 일부나 데이터베이스 조회의 결과를 나타낼 수 있습니다. 대체 시퀀스는 다시 작성된 주소를 생성하기 위해 자신이 나타내는 대상으로 대체됩니다. 표 11–4에서는 $U 대체 시퀀스가 사용됩니다. 자세한 내용은 템플리트 대체 및 다시 쓰기 규칙 제어 시퀀스 를 참조하십시오.
DomainTemplate는 주소의 도메인 부분이 다시 작성되는 방법을 지정합니다. UserTemplate와 마찬가지로 DomainTemplate는 대체 시퀀스를 포함할 수 있습니다.
ChannelTag는 이 메일이 전송될 채널을 나타냅니다. (모든 채널 정의는 채널 이름뿐만 아니라 채널 태그를 포함해야 합니다. 채널 태그는 일반적으로 다시 쓰기 규칙과 채널 정의에 포함되어 있습니다.)
controls를 사용하여 규칙의 적용 가능성을 제한할 수 있습니다. 일부 제어 시퀀스는 규칙의 시작 부분에 있어야 하며 다른 제어는 규칙의 끝 부분에 있어야 합니다. 제어에 대한 자세한 내용은 템플리트 대체 및 다시 쓰기 규칙 제어 시퀀스 를 참조하십시오.
템플리트 구문에 대한 자세한 내용은 다시 쓰기 규칙 템플리트를 참조하십시오.