사용자는 메일을 보내고받을 수있는 사이트에 exim 설정이 작동합니다. 이메일을 사용하여 로컬 네트워크 외부의 주소로 경고 및 오류를 보내도록 서버를 설정하려고합니다.
문제는:
메일을 보내는 프로그램은 메일을 실행하는 사용자 이름과 서버의 로컬 호스트 이름을 사용하여 메일을 보냅니다. 이로 인해 메일은 myapp@myserver.mydomain 형식의 발신자가됩니다. Exim은 이러한 메일을 ISP의 SMTP 서버로 전송합니다.이 메일은 불법이거나 확인할 수없는 발신자 (내부 주소)가있는 메일을 거부합니다.
다음과 같은 경우 발신자를 다시 쓰도록 exim을 구성해야한다고 생각합니다.
- 발신자의 도메인이 로컬 네트워크에 있습니다.
- 수신자의 도메인이 로컬 네트워크 외부에 있음
exim 구성에서 일종의 다시 쓰기 설정을 시도했지만 제대로 작동하지 않았습니다. 나는 내가 시도한 것을 보여 주었지만, 마지막으로 사이트를 방문했을 때 시간이 부족하여 시도한 모든 변경 사항을 잃어 버린 원래 버전으로 되돌려 야했습니다.
답변
begin rewrite
myapp@myserver.mydomain legal.user@myserver.mydomain SFfrs
플래그는 다음과 같은 의미를 갖습니다.
- S-SMTP 시간에 모두 다시 작성합니다. 이는 다음에 오는 모든 플래그가 적용되는 데이터가 들어 오면 즉시 완료되고 나중에 지연되지 않음을 의미합니다.
- F-봉투를 필드에서 다시 씁니다.
- f-From : 헤더 필드를 다시 작성하십시오.
- r-답장 : 헤더 필드를 다시 작성하십시오.
- s-Sender-To : 헤더 필드를 다시 작성하십시오.
메시지 재 작성에 대한 자세한 내용은 Exim 사양의 31 장을 읽으십시오.
답변
파일 /etc/email-addresses
이 문제를 처리해야합니다. 이것은 Exim 배포판의 표준 부분입니다. 이메일을 보내는 각 로컬 사용자마다 하나의 레코드를 구성해야합니다.
/etc/email-addresses
좋아 하는 줄을보십시오 :
myapp: donotreply@example.com
MX 서버에서 다음과 같은 별칭을 추가하십시오.
donotreply: :blackhole:
Reply-to:
수신자가 메시지에 회신 할 수 있도록 헤더를 사용하십시오 .
파일 /etc/email-addresses
은 다음 재 작성 코드로 사용 rewrite
되며 구성 파일 섹션의 시작 부분에 있어야합니다.
*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
{$value}fail}" Ffrs
답변
/etc/email-addresses
사용자 이름 당 하나의 이메일 주소 만 연결하면됩니다 . 그러나 사용자가 여러 주소로 이메일을 보내야하는 경우 /etc/email-addresses
매번 수정해야 하며 잘못된 주소를 사용해야합니다.
다른 방법은 exim4
명령과 해당 -f
옵션을 사용하여 이메일을 보내는 것입니다.
$ cat email|/usr/sbin/exim4 -f myapp@example.com recipient@example.com
참고 즉, 위해 할 -f
작업에 대한 옵션, 당신도 사용자가 수출입의 신뢰할 수있는 사용자의 수 또는 허용 된 신뢰할 수없는 보낸 사람으로 그를 받아 수출입 할 필요가있다.
필자의 경우 다음과 같은 와일드 카드 덕분에 후자가 기본값이었습니다 /etc/exim4/conf.d/main/02_exim4-config_options
.
untrusted_set_sender = *
다른 해결책은 다음 줄을 추가하는 것입니다 /etc/exim4/conf.d/main/00_local_settings
(exim의 분할 구성을 가정하고 아직 존재하지 않는 경우 작성).
MAIN_TRUSTED_USERS = yourusername
두 옵션 모두 exim 구성을 다시로드해야합니다. 데비안에서 :
# dpkg-reconfigure exim4-config