지난 며칠 동안 저는 웹 애플리케이션에서 보낸 모든 메일을 처리하도록 Exim4를 설정하려고 노력해 왔습니다.
작동하는 것 같지만 EHLO와 함께 전송될 호스트 이름을 하드코딩하는 방법을 찾지 못했습니다. (설정하고 싶지 않습니다 /etc/hostname
.)
구성에 언급된 변수를 찾았 MAIN_HARDCODE_PRIMARY_HOSTNAME
지만 이를 설정할 방법을 찾지 못했습니다. 이 변수가 호스트 이름을 설정하는 가장 간단한 방법입니까, 아니면 더 좋은 방법이 있습니까?
다음은 전체 설치/구성입니다. 내가 뭐 놓친 거 없니?
Exim version 4.92
Debian Buster 10
설치하다
apt-get install exim4-daemon-light
Exim4 구성
dpkg-reconfigure exim4-config
Type: internet site
FQDN: smtp.mydomain.com
SMTP listener: (empty)
Mail destinations: (empty)
Domain relay: (empty)
Machine relay: (empty)
DNS queries minimal: No
Delivery method: Maildir
Split conf files: No
TLS 활성화 및 인증서 생성
printf "MAIN_TLS_ENABLE = true\n" >> /etc/exim4/exim4.conf.localmacros
/usr/share/doc/exim4-base/examples/exim-gencert
역방향 DNS 확인(IP -> smtp.mydomain.com)
https://mxtoolbox.com/ReverseLookup.aspx
IPv6 받기
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
/etc/호스트
[ipv4] smtp.mydomain.com
[ipv6] smtp.mydomain.com
"/etc/exim4/exim4.conf.template" 주석 해제
# plain_server:
# driver = plaintext
# public_name = PLAIN
# server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CON$
# server_set_id = $2
# server_prompts = :
# .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
# server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
# .endif
사용자/비밀번호 추가 -> '/etc/exim4/passwd'
/usr/share/doc/exim4-base/examples/exim-adduser
DKIM/SPF
서버에 DKIM 키를 설정하고 DNS에 DKIM/SPF를 설정했는데 둘 다 작동합니다.
답변1
REMOTE_SMTP_HELO_DATA = whatever.you.want
.Debian 패키지 는 /etc/exim4/exim4.conf.localmacros
4.69-10부터 지원합니다 . 에서 /usr/share/doc/exim4/changelog.Debian.gz
:
- REMOTE_SMTP_HELO_DATA 매크로를 직접 설정하여 나가는 smtp helo/ehlo를 설정할 수 있습니다. 이전에는 REMOTE_SMTP_HELO_FROM_DNS에 대한 도우미 매크로로만 사용되어야 했습니다. REMOTE_SMTP_HELO_FROM_DNS는 수동 REMOTE_SMTP_HELO_DATA 데이터 설정을 재정의합니다. 폐쇄:#514113
Debian 구성 템플릿은 이 매크로를 사용하여 데이터를 채웁니다.helo_data
SMTP 전송 옵션.