Estou tentando configurar o sendmail para usar um relay . Já tentei vários procedimentos, mas não sei porque não funciona pois o mesmo relé é usado por outros serviços e funciona.
Abaixo está o procedimento de instalação que estou usando.
O que posso fazer para diagnosticar o que acontece? O que pode estar errado?
Obrigado!
Instalação e configuração
Execute o seguinte para atualizar e instalar...
yum -y update
yum -y install sendmail-cf
yum -y install m4
yum -y install cyrus-sasl-plain
Criar diretório para armazenar arquivos de autenticação...
mkdir /etc/mail/authinfo
chmod 700 /etc/mail/authinfo
Criar um arquivo de autenticação...
DICA: O arquivo pode ter qualquer nome como "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"
Crie um arquivo de mapa de hash do arquivo de autenticação criado acima ...
enter code here
makemap hash /etc/mail/authinfo/smtp-auth < /etc/mail/authinfo/smtp-auth
Configurar Sendmail com SMART_HOST...
Adicione as seguintes linhas de configuração em seu arquivo de configuração "sendmail.mc" imediatamente antes da linha "MAILER(smtp)dnl"...
vi /etc/mail/sendmail.mc
Contente...
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
Reconstruir a configuração do sendmail...
make -C /etc/mail
Habilite e inicie o serviço sendmail...
systemctl enable sendmail.service
systemctl restart sendmail.service
Teste e saída
[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
NOTA: A conta "meu_usuário@meu_dominio.com.br" é capaz de enviar e-mail para a conta "destinatário@dominio_destinatário.com" a partir de seu webmail.
ERRO: "550 5.7.1 Envio não autorizado - Verifique o MX e/ou SPF do seu domínio" (português)/"550 5.7.1 Envio não autorizado - Verifique o MX e/ou SPF do seu domínio" (inglês).
mc files espera citações `x' [corrigido na versão revisada da pergunta]
Você implantou a recomendação padrão para proibir o envio de senha de "texto simples" (não criptografada) em conexões SMTP não criptografadas [
p
flag inconfAUTH_OPTIONS
].Seu host inteligente oferece apenas autenticação de texto simples [ver
AUTH
linhas emEHLO
resposta] , mas não oferece atualização para conexão criptografada [nãoSTARTTLS
emEHLO
resposta].O erro...
... acontece porque o serviço SMTP em uso por nós exige que o "remetente do envelope" seja o mesmo que o "remetente" efetivo.
Para resolver esse problema, precisamos construir um banco de dados genericstable para mapear o endereço do remetente de entrada para o endereço desejado.
No nosso caso, crie o arquivo "/etc/mail/genericstable" com a entrada
root my_user@my_domain.com.br
e adicione a entradaFEATURE(
genericstable',hash -o /etc/mail/genericstable.db')dnl
no arquivo "/etc/mail/sendmail.mc".Para melhor compreensão, segue abaixo o procedimento completo.
Sendmail - Instalação e configuração
Execute o seguinte para atualizar e instalar dependências...
Crie um arquivo de autenticação...
Construindo um banco de dados "genericstable" para mapear o endereço do remetente de entrada para o endereço desejado ("envelope sender").
Crie o arquivo "genericstable"...
Configure o Sendmail com "SMART_HOST".
Adicione as seguintes linhas de configuração em seu arquivo de configuração "sendmail.mc" imediatamente antes da linha "MAILER(smtp)dnl"...
Contente...
Reconstruir a configuração do sendmail...
Habilite e inicie o serviço sendmail...
Teste sua configuração
[Ref.: 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 ]
Outra pergunta/mais: Por que usar o Sendmail com retransmissão?
[Ref.: https://support.nagios.com/forum/viewtopic.php?f=7&t=28246 ]