Não consigo encontrar um motivo para isso nas configurações do postfix, mas e-mails duplicados estão sendo enviados, sob diferentes UIDs. Olhando para os cabeçalhos dos e-mails, eles têm IDs exclusivos e cada um com um arquivo Postfix, from userid
. Por exemplo, alguém diz:
Received: by localhost.localdomain (Postfix, from userid 1000)
id AFFE880C9E43; Thu, 7 Mar 2024 03:04:02 -0800 (PST)
Enquanto o outro diz:
Received: by localhost.localdomain (Postfix, from userid 0)
id A076980CB3FD; Thu, 7 Mar 2024 03:04:02 -0800 (PST)
Os logs de e-mail postfix/pickup
também mostram linhas mostrando dois UIDs e, em seguida, o e-mail sendo enviado duas vezes nas postfix/smtp
linhas:
Mar 7 20:57:01 localhost postfix/pickup[1523368]: A0DA580CC916: uid=1000 from=<[email protected]>
Mar 7 20:57:01 localhost postfix/cleanup[1534353]: A0DA580CC916: message-id=<Aej4eFk4CtMsohU6wbxrlXigdloI53zuZDvecHneZ9Y@localhost>
Mar 7 20:57:01 localhost postfix/qmgr[1487578]: A0DA580CC916: from=<[email protected]>, size=1059, nrcpt=1 (queue active)
Mar 7 20:57:01 localhost postfix/pickup[1523368]: C74B180CB50F: uid=0 from=<[email protected]>
Mar 7 20:57:01 localhost postfix/cleanup[1534353]: C74B180CB50F: message-id=<jUeGOoaBFebz2tFQZEhCnoShgiL8EL0RhvaynFZKM@localhost>
Mar 7 20:57:01 localhost postfix/qmgr[1487578]: C74B180CB50F: from=<[email protected]>, size=1046, nrcpt=1 (queue active)
Mar 7 20:57:04 localhost postfix/smtp[1534359]: A0DA580CC916: to=<[email protected]>, relay=d96439a.ess.barracudanetworks.com[209.222.82.255]:25, delay=2.6, delays=0.19/0.01/0.41/1.9, dsn=2.0.0, status=sent (250 OK ([email protected]:250 Ok: queued as D76BE1180056))
Mar 7 20:57:04 localhost postfix/qmgr[1487578]: A0DA580CC916: removed
Mar 7 20:57:05 localhost postfix/smtp[1534363]: C74B180CB50F: to=<[email protected]>, relay=d96439b.ess.barracudanetworks.com[209.222.82.253]:25, delay=4.1, delays=0.09/0.01/0.47/3.5, dsn=2.0.0, status=sent (250 OK ([email protected]:250 Ok: queued as 933FB1180056))
Mar 7 20:57:05 localhost postfix/qmgr[1487578]: C74B180CB50F: removed
No arquivo main.cf, há:
meudestino = $meuhostname, localhost.$meudomínio
Não tenho certeza de quais outras configurações são relevantes.
Por que os e-mails seriam enviados com dois UIDs? Um é para o usuário 'root', outro para outro usuário, mas por que ambos estão sendo usados? Eu olhei os arquivos php que enviam os e-mails, eles só enviam uma vez. Para testes, usei um formato de e-mail HTML simples. Exemplo:
$to = '[email protected]';
$subject = "A message for you";
$message = "Hello there!";
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';
$headers[] = 'From: Test <[email protected]>';
if(mail($to, $subject, $message, implode("\r\n", $headers))) {
echo "E-Mail Sent";
} else {
echo "There was a problem";
}
O sistema operacional é AlmaLinux 9.3, basicamente um ramo do RHEL.
EDITAR:
Em resposta a @dennis-nolte, "postconf -n" retorna:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
compatibility_level = 2
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
meta_directory = /etc/postfix
milter_default_action = accept
mydestination = $myhostname, localhost.$mydomain
mynetworks = 127.0.0.0/8
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = $smtpd_milters
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix/README_FILES
sample_directory = /usr/share/doc/postfix/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
shlib_directory = /usr/lib64/postfix
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client zen.spamhaus.org, reject_rhsbl_reverse_client dbl.spamhaus.org, reject_rhsbl_helo dbl.spamhaus.org, reject_rhsbl_sender dbl.spamhaus.org
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
unknown_local_recipient_reject_code = 550
... e o arquivo /etc/aliases contém um monte de pseudo contas listadas como "root" e estas no final:
newsadm: news
newsadmin: news
usenet: news
ftpadm: ftp
ftpadmin: ftp
ftp-adm: ftp
ftp-admin: ftp
www: webmaster
webmaster: root
noc: root
security: root
hostmaster: root
info: postmaster
marketing: postmaster
sales: postmaster
support: postmaster
Confesso que não tenho ideia do que fazer com essas informações.
Em resposta a @anx, como posso descobrir quem está gerando o ID da mensagem @localhost? Na resposta "postconf -n", há algumas referências a "localhost" - inet_interfaces = localhost
e mydestination = $myhostname, localhost.$mydomain
- uma delas poderia ser a culpada?
Obrigado por qualquer ajuda para rastrear isso.
Seu servidor parece não saber seu próprio nome - mas isso é necessário para enviar e-mails na Internet. Configure-o de acordo com a documentação do release de sua distribuição.
Confirme o resultado ligando para
hostname -s
: deve gerar apenas o nome do host e entãohostname -f
: deve gerar o nome de domínio totalmente qualificado .Os padrões para configurações do Postfix
myhostname
sãomydomain
normalmente apropriados, desde que seu nome de host seja, mas revisemydestination
após a alteração.Verifique se há redirecionamentos locais em fe /etc/aliases
Além disso, pode haver uma configuração de alias específica em seu main.cf que pode resultar nisso.
Observe que você pode não ter recarregado/reiniciado o postfix após as alterações de configuração, resultando na ativação de uma configuração diferente em vez daquela que você espera.
postconf -n
pode ajudá-lo a identificar detalhes de sua configuração para esse comportamento.Ok, acontece que o problema não tinha nada a ver com o postfix, mas estava acontecendo devido a cronjobs duplicados (que eu não sabia), um cronjob root e um cronjob de usuário (criado pelo mesmo usuário para quem os e-mails estão sendo enviados). , embora eu não ache que isso importe).
Em retrospecto, eu deveria ter mencionado que um cronjob estava acionando o script de e-mail, mas não achei que isso importasse, pois não percebi que havia mais de um.
Então eliminei o cronjob root, e o script agora só está sendo acionado pelo usuário cronjob, com bons resultados e sem duplicação.
Espero que isso ajude alguém a evitar todas as horas pesquisando e mexendo nas configurações do postfix que eu fiz!