localhost가 아닌 MX 레코드를 통해 메일을 보내도록 sendmail을 어떻게 구성합니까?

localhost가 아닌 MX 레코드를 통해 메일을 보내도록 sendmail을 어떻게 구성합니까?

MX 레코드에 지정된 서버로 메일을 전송하기 위해 sendmail을 얻으려고 합니다.[이메일 보호됨]localhost를 건너뛰고 Gmail로 바로 이동하고 싶습니다.

나는 sendmail 문서를 검토했지만 내 상황을 설명하는 방법을 잘 이해하지 못합니다. 기본적으로 내 서버의 호스트 이름은 'www.domain.com'이지만 이메일을 '[이메일 보호됨]' 로컬 메일 스풀에서 끝납니다.

디버그 모드에서 sendmail을 실행할 때:

sendmail -bt
> $=w

나는 얻다:

www.domain.com
www.domain.com.
domain.com
localhost
[54.245.___.___] 

따라서 으로 보내는 모든 메일을 가로채고 있습니다 domain.com. 나는 그것이 에 도착하는 것을 원하지 않습니다 localhost. Gmail 서버로 이동하고 싶습니다.

다른 주소로 향하는 모든 메일은 정상적으로 작동합니다. 또한 DKIM을 사용하도록 sendmail을 구성했습니다.

mailertable에 레코드를 추가했지만(mailertable.db를 다시 빌드하고 mc>cf 파일을 다시 컴파일했습니다) 이것이 제가 해야 할 일인지, 아니면 올바르게 수행하고 있는지 잘 모르겠습니다.

domain.com esmtp:[aspmx.l.google.com]

메일 바인딩을 허용하려면 어떻게 해야 하나요?[이메일 보호됨]서버를 떠나려고?

추가 정보: 내 sendmail.mc 파일은 다음과 같습니다.

divert(-1)dnl

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for linux')dnl
OSTYPE(`linux')dnl

define(`confDEF_USER_ID', ``8:12'')dnl

define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', `True')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl

define(`confTO_IDENT', `0')dnl

FEATURE(`no_default_msa', `dnl')dnl
FEATURE(`smrsh', `/usr/sbin/smrsh')dnl
FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl

FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

FEATURE(`accept_unresolvable_domains')dnl
FEATURE(`relay_based_on_MX')dnl
FEATURE(`relay_entire_domain')dnl

LOCAL_DOMAIN(`localhost.localdomain')dnl

MASQUERADE_AS(`domain.com')dnl
MASQUERADE_DOMAIN(`localhost.localdomain')dnl

EXPOSED_USER(`root')dnl

FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl

INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')

MAILER(smtp)dnl
MAILER(procmail)dnl

답변1

마침내 다소 포괄적인 솔루션을 찾았습니다.여기. 요약하자면, 여러 가지 옵션이 있습니다(대부분은 다른 답변에서 언급되었지만 어떤 이유로든 내 특정 시나리오에서는 작동하지 않았습니다).

옵션 1:/etc/mail/local-host-names에서 항목을 제거하십시오.

나에게 이 파일은 이미 비어 있었습니다

옵션 2:mc 파일에서 LOCAL_DOMAIN 항목을 제거하세요.

나는 아무것도 없었다

옵션 3:sendmail에게 인터페이스를 조사하지 말라고 지시

define(`confDONT_PROBE_INTERFACES', `true')dnl

내 경우에는 이것이 설정되었지만 문제가 있는 호스트는 여전히 sendmail의 클래스 w에 존재했습니다.

옵션 4:서버 이름을 바꿉니다. 위에 제공된 외부 링크에는 "w 클래스에서 whipple.org를 제거하려면 서버 이름을 frodo.whipple.org, www.whipple.org, elvis.whipple.org 등으로 바꿀 수 있습니다"라고 구체적으로 명시되어 있습니다.

나에게는 이것만으로는 충분하지 않았습니다. 호스트 이름이 있는www.도메인.com, sendmails 클래스 w에는 여전히 www.domain.com과 domain.com이 모두 포함되어 있습니다(재부팅 후에도).

옵션 5: 이것이 나에게 효과적이었습니다sendmail mc 파일에 LOCAL_RULE_0을 추가하세요.

LOCAL_RULESETS
LOCAL_RULE_0
R$* < @domain.com. > $*  <tab>$#esmtp $@ mail.domain.com $: $1<@domain.com.>$2

이 문자는 파일 끝에 와야 하며 <tab>실제 탭 문자여야 합니다.

답변2

서버의 호스트 이름을 변경합니다. 호스트 이름이 기본 도메인 이름과 동일할 타당한 이유는 없습니다.

답변3

귀하의 질문에 대한 제가 이해한 바는 다음과 같습니다.

  1. 웹사이트에서 이메일을 보내는 데 사용할 수 있도록 Sendmail을 설치했습니다.

  2. Sendmail을 공개 DNS 네임스페이스에 대한 권한 있는 이메일 서버로 구성했습니다.

  3. Sendmail이 공용 DNS 네임스페이스에 대해 권한을 갖는 것을 원하지 않습니다. 공개 DNS 네임스페이스로 전송된 이메일을 Google에서 호스팅하는 이메일로 전송하려고 합니다.

해결 방법: 공용 DNS 네임스페이스에 대해 신뢰할 수 없도록 Sendmail을 재구성하십시오.

답변4

1) Sendmail은 자동으로 로컬 이메일 도메인 목록을 채웁니다( $=w).

sendmail.mc에서 다음 줄을 사용하여 이 기능을 끌 수 없습니다.

define(`confDONT_PROBE_INTERFACES',`True')

/etc/mail/local-host-names파일 에 로컬 이메일을 "수동으로" 추가할 수 있습니다 .
(이후 HUPing 또는 sendmail 데몬을 다시 시작해야 함)

$j2) Sendmail은 로컬 이메일 도메인 목록에 "이 호스트 이메일 이름"( )을 추가(자동 구성)할 수 있습니다 .

"이 호스트 이메일 이름"을 정의할 수 있습니다.

define(`confDOMAIN_NAME',`hostname.example.net')

3) mailertable아니다에 나열된 도메인으로의 배송에 대해 문의했습니다 $=w.

관련 정보