구성을 구성하려고 합니다.이메일을 보내사용하다계전기. 여러 프로세스를 시도했지만 다른 서비스가 동일한 릴레이를 사용하고 작동하기 때문에 왜 작동하지 않는지 모르겠습니다.
아래는 제가 사용하는 설치 과정입니다.
무슨 일이 일어나고 있는지 진단하려면 어떻게 해야 합니까? 무엇이 잘못될 수 있나요?
감사해요!
설치 및 구성
업데이트하고 설치하려면 다음 명령을 실행하십시오.
yum -y update
yum -y install sendmail-cf
yum -y install m4
yum -y install cyrus-sasl-plain
인증 파일을 저장할 디렉터리를 만듭니다...
mkdir /etc/mail/authinfo
chmod 700 /etc/mail/authinfo
인증 파일 생성...
팁: 파일 이름은 "smtp-auth"와 같이 어떤 이름이든 가질 수 있습니다.
read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
AuthInfo:smtp.my_domain.com.br "U:root" "I:my_user@my_domain.com.br" "P:my_password"
END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > "/etc/mail/authinfo/smtp-auth"
위에서 생성한 인증파일의 해시맵 파일을 생성합니다...
enter code here
makemap 해시 /etc/mail/authinfo/smtp-auth < /etc/mail/authinfo/smtp-auth
SMART_HOST를 사용하여 Sendmail 구성...
"MAILER(smtp)dnl" 줄 앞에 "sendmail.mc" 구성 파일에 다음 구성 줄을 추가합니다...
vi /etc/mail/sendmail.mc
콘텐츠...
define(`SMART_HOST', `smtp.my_domain.com.br')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo/smtp-auth.db')dnl
MASQUERADE_AS(my_domain.com.br)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(my_domain.com.br)dnl
Sendmail 구성을 다시 작성합니다...
make -C /etc/mail
sendmail 서비스를 활성화하고 시작합니다...
systemctl enable sendmail.service
systemctl restart sendmail.service
테스트 및 출력
[root@localhost ~]# read -r -d '' EMAIL_CONTENT << 'HEREDOC'
> BEGIN
> From: my_user@my_domain.com.br
> To: recipient@recipient_domain.com
> Subject: Fail2ban test
>
> Fail2ban test
>
> END
> HEREDOC
[root@localhost ~]# echo -n "${EMAIL_CONTENT:6:-3}" | sendmail -Am -d60.5 -v recipient@recipient_domain.com
map_lookup(dequote, root, %0=root) => NOT FOUND (0)
map_lookup(host, recipient_app.com, %0=recipient_app.com) => recipient_app.com. (0)
map_lookup(mailertable, recipient_app.com, %0=recipient_app.com) => NOT FOUND (0)
map_lookup(mailertable, .com, %0=.com, %1=recipient_app, %2=recipient_app) => NOT FOUND (0)
map_lookup(mailertable, ., %0=., %1=recipient_app.com) => NOT FOUND (0)
recipient@recipient_domain.com... Connecting to smtp.my_domain.com.br port 587 via relay...
220 a2-smithers5.uhserver.com ESMTP
>>> EHLO localhost.localdomain
250-a2-smithers5.uhserver.com
250-PIPELINING
250-SIZE 41943040
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN LOGIN PLAIN
250-AUTH=LOGIN PLAIN LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
map_lookup(macro, {TLS_Name}, %0={TLS_Name}, %1=smtp.my_domain.com.br) => (0)
map_lookup(access, TLS_Srv:smtp.my_domain.com.br, %0=TLS_Srv:smtp.my_domain.com.br) => NOT FOUND (0)
map_lookup(access, TLS_Srv:my_domain.com.br, %0=TLS_Srv:my_domain.com.br) => NOT FOUND (0)
map_lookup(access, TLS_Srv:com.br, %0=TLS_Srv:com.br) => NOT FOUND (0)
map_lookup(access, TLS_Srv:br, %0=TLS_Srv:br) => NOT FOUND (0)
map_lookup(access, TLS_Srv:200.147.36.31, %0=TLS_Srv:200.147.36.31) => NOT FOUND (0)
map_lookup(access, TLS_Srv:200.147.36, %0=TLS_Srv:200.147.36) => NOT FOUND (0)
map_lookup(access, TLS_Srv:200.147, %0=TLS_Srv:200.147) => NOT FOUND (0)
map_lookup(access, TLS_Srv:200, %0=TLS_Srv:200) => NOT FOUND (0)
map_lookup(access, TLS_Srv:, %0=TLS_Srv:) => NOT FOUND (0)
map_lookup(authinfo, AuthInfo:smtp.my_domain.com.br, %0=AuthInfo:smtp.my_domain.com.br) => NOT FOUND (0)
map_lookup(authinfo, AuthInfo:200.147.36.31, %0=AuthInfo:200.147.36.31) => NOT FOUND (0)
map_lookup(authinfo, AuthInfo:, %0=AuthInfo:) => "U:my_user@my_domain.com.br" "I:my_user@my_domain.com.br" "P:brlight2012" "M:PLAIN" (0)
>>> AUTH PLAIN YWRtaW5AbGlnaHRiYXNlLmNvbS5icgBhZG1pbkBsaWdodGJhc2UuY29tLmJyAGJybGlnaHQyMDEy
235 2.7.0 Authentication successful
>>> MAIL From:<[email protected]> SIZE=97 [email protected]
550 5.7.1 Envio nao autorizado - Verifique o MX e/ou SPF do seu dominio
map_lookup(dequote, root, %0=root) => NOT FOUND (0)
map_lookup(dequote, root, %0=root) => NOT FOUND (0)
map_lookup(dequote, MAILER-DAEMON, %0=MAILER-DAEMON) => NOT FOUND (0)
map_lookup(host, my_domain.com.br, %0=my_domain.com.br) => my_domain.com.br. (0)
map_lookup(host, recipient_app.com, %0=recipient_app.com) => recipient_app.com. (0)
root... Connecting to local...
root... Sent
Closing connection to smtp.my_domain.com.br
>>> QUIT
노트:"my_user@my_domain.com.br" 계정은 웹메일에서 "recipient@recipient_domain.com" 계정으로 이메일을 보낼 수 있습니다.
실수:"550 5.7.1 Envio nao autorizado - Verifique o MX e/ou SPF do seu dominio"(포르투갈어) / "550 5.7.1 무단 전송 - 도메인의 MX 및/또는 SPF를 확인하세요"(영어).
답변1
mc 파일에는 'x' 따옴표가 필요합니다. [문제 수정에서 수정됨]
암호화되지 않은 SMTP 연결을 통해 "일반 텍스트"(암호화되지 않은) 비밀번호 전송을 비활성화하는 표준 권장 사항을 배포했습니다[
p
플래그 포함confAUTH_OPTIONS
].귀하의 스마트 호스트는 일반 텍스트 인증만 제공합니다. [ 답변
AUTH
내용 참조EHLO
]하지만암호화된 연결로 업그레이드하는 기능은 제공하지 않습니다[STARTTLS
응답 없음EHLO
].- 구성 검증금지하다암호화되지 않은 SMTP 연결을 통해 암호화되지 않은 비밀번호를 보내지만 스마트 호스트는 다른 옵션을 제공하지 않습니다.
답변2
실수...
"550 5.7.1 Envio nao autorizado - Verifique o MX e/ou SPF do seu dominio"(포르투갈어) / "550 5.7.1 무단 전송 - 도메인의 MX 및/또는 SPF를 확인하세요"(영어)
...이는 우리가 사용하는 SMTP 서비스에서 "envelope from"이 유효한 "from"과 동일해야 하기 때문에 발생합니다.
이 문제를 해결하려면 입력된 보낸 사람 주소를 필요한 주소에 매핑하는 일반적인 안정적인 데이터베이스를 구축해야 합니다.
우리의 경우 '/etc/mail/genericstable' 항목으로 '/etc/mail/genericstable' 파일을 생성하고 '/etc/mail/sendmail.mc' 파일에 'genericstable' root my_user@my_domain.com.br
항목을 추가합니다 .FEATURE(
hash -o /etc/mail/genericstable.db')dnl
더 나은 이해를 위해 전체 프로세스는 다음과 같습니다.
Sendmail - 설치 및 구성
종속 항목을 업데이트하고 설치하려면 다음 명령을 실행하세요.
yum -y update
yum -y install sendmail-cf
yum -y install m4
yum -y install cyrus-sasl-plain
인증 파일 생성...
read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
AuthInfo:smtp.my_domain.com.br "U:root" "I:my_user@my_domain.com.br" "P:my_password"
END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > "/etc/mail/authinfo"
입력 보낸 사람 주소를 필수 주소("봉투 보낸 사람")에 매핑하는 "일반" 데이터베이스를 구축합니다.
"genericstable" 파일 생성...
read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
root my_user@my_domain.com.br
END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > "/etc/mail/genericstable"
"SMART_HOST"를 사용하여 Sendmail을 구성합니다.
"MAILER(smtp)dnl" 줄 앞에 "sendmail.mc" 구성 파일에 다음 구성 줄을 추가합니다...
vi /etc/mail/sendmail.mc
콘텐츠...
define(`SMART_HOST', `smtp.my_domain.com.br')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo', `hash -o /etc/mail/authinfo/smtp-auth.db')dnl
MASQUERADE_AS(my_domain.com.br)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(my_domain.com.br)dnl
FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
Sendmail 구성을 다시 작성합니다...
make -C /etc/mail
sendmail 서비스를 활성화하고 시작합니다...
systemctl enable sendmail.service
systemctl restart sendmail.service
구성 테스트
read -r -d '' EMAIL_CONTENT << 'HEREDOC'
BEGIN
From: my_user@my_domain.com.br
To: recipient@recipient_domain.com
Subject: Fail2ban test
Fail2ban test
END
HEREDOC
echo -n "${EMAIL_CONTENT:6:-3}" | sendmail -Am -d60.5 -v recipient@recipient_domain.com
[참조:http://blog.achinthagunasekara.com/2015/08/how-to-configure-sendmail-to-work-with.html,https://access.redhat.com/discussions/2959431,https://docs.cloud.oracle.com/iaas/Content/Email/Reference/sendmail.htm,https://serverfault.com/a/574118/276753,https://serverfault.com/a/839476/276753,https://superuser.com/a/1448009/195840,https://tecadmin.net/sendmail-to-relay-emails-through-gmail-stmp/,https://www.bonusbits.com/wiki/HowTo:Configure_SendMail_to_Use_SMTP_Relay,https://www.sitepoint.com/community/t/email-mx-records-vs-spf-records/7947]
추가 질문/추가 사항:릴레이 기능이 있는 Sendmail을 사용하는 이유는 무엇입니까?
sendmail의 가장 큰 문제점은 많은 스패머들이 이를 사용하여 도메인 이름을 요구하지 않고 대량 이메일을 보내는 것을 좋아하므로 거부되는 경우가 많다는 것입니다. 중계할 수 있는 SMTP가 있으면 도움이 됩니다.
[인용하다: https://support.nagios.com/forum/viewtopic.php?f=7&t=28246]