[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1109091: unblock: postfix/3.10.3-2



Package: release.debian.org
Severity: normal
X-Debbugs-Cc: postfix@packages.debian.org
Control: affects -1 + src:postfix
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package postfix

[ Reason ]
There's a new upstream stable/bugfix release, fixing two issues
with TLS-enabled SMTP client, introduced in 3.10 version.
Also, this upload includes pt debconf translation update.

[ Tests ]
I'm using the new postfix release in production now, with no issues.
Upstream is very cautious about breaking something, so it is to be
expected.

[ Risks ]
There should be no risk in letting postfix in, due to excellent
quality record of this software.  If a problem occurs still, which
can happen obviously, we'll deal with it promptly.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
I'd rather keep postfix upstream bugfix series in debian stable
in the future.

The bulk of this update is the po translation update.

Debdiff is below.

Thanks,

/mjt

unblock postfix/3.10.3-2

diff -Nru postfix-3.10.2/HISTORY postfix-3.10.3/HISTORY
--- postfix-3.10.2/HISTORY	2025-04-22 15:06:24.000000000 +0300
+++ postfix-3.10.3/HISTORY	2025-07-10 00:56:05.000000000 +0300
@@ -29029,3 +29029,28 @@
 	add an extra newline character before appending the new
 	setting, causing information to become garbled. Fix by
 	Michael Tokarev. File: postconf/postconf_edit.c.
+
+20250619
+
+	Bugfix (defect introduced: Postfix-3.10, date 20250117):
+	include the current TLS security level in the SMTP connection
+	cache lookup key for lookups by next-hop destination. The
+	idea is that to deliver a message without "TLS-Required:
+	no" header, the Postfix SMTP client must not reuse a
+	connection that was created during a burst of deliveries
+	of messages with "TLS-Required: no" to the same destination.
+
+	Including the TLS security level in the SMTP connection
+	cache lookup key will also prevent false connection reuse
+	when any future feature is added that overrides the TLS
+	security level based on message content or envelope metadata.
+	Files: smtp/smtp.h.
+
+	Likewise, include the current TLS security level in the TLS
+	client serverid field. File: smtp/smtp_proto.c.
+
+	Bugfix (defect introduced: Postfix-3.10, date 20250117): the
+	Postfix SMTP client attempted to look up TLSA records even
+	with "TLS-Required: no". This could result in unnecessary
+	failures. Fix by Viktor Dukhovni & Wietse. Files: smtp/smtp.h,
+	smtp/smtp_policy.c, smtp/smtp_connect.c.
diff -Nru postfix-3.10.2/debian/changelog postfix-3.10.3/debian/changelog
--- postfix-3.10.2/debian/changelog	2025-04-23 11:42:50.000000000 +0300
+++ postfix-3.10.3/debian/changelog	2025-07-11 00:50:43.000000000 +0300
@@ -1,3 +1,32 @@
+postfix (3.10.3-2) unstable; urgency=medium
+
+  * d/changelog: fix wrongly formatted previous changelog entry (double email)
+  * update Portuguese translation (Closes: #1107436)
+
+ -- Michael Tokarev <mjt@tls.msk.ru>  Fri, 11 Jul 2025 00:50:43 +0300
+
+postfix (3.10.3-1) unstable; urgency=medium
+
+  [ Michael Tokarev ]
+  * new upstream stable/bugfix release.  From the release announcement:
+    This release fixes defects that were introduced in Postfix 3.10.
+    The defects exist only with the default configuration
+    "tls_required_enable = yes".
+  * Bugfix (defect introduced: Postfix-3.10, date 20250117): include
+    the current TLS security level in the SMTP connection cache
+    lookup key for lookups by next-hop destination, to avoid reusing
+    the same SMTP connection when sending messages with and without
+    a "TLS-Required: no" header. Likewise, include the current TLS
+    security level in the TLS session lookup key, to avoid reusing
+    the same TLS session info when sending messages with and without
+    a "TLS-Required: no" header.
+  * Bugfix (defect introduced: Postfix-3.10, date 20250117): the
+    Postfix SMTP client attempted to look up TLSA records even with
+    "TLS-Required: no". This could result in unnecessary failures.
+    Fix by Viktor Dukhovni & Wietse.
+
+ -- Michael Tokarev <mjt@tls.msk.ru>  Fri, 11 Jul 2025 00:26:40 +0300
+
 postfix (3.10.2-1) unstable; urgency=medium
 
   [ Michael Tokarev ]
diff -Nru postfix-3.10.2/debian/po/pt.po postfix-3.10.3/debian/po/pt.po
--- postfix-3.10.2/debian/po/pt.po	2024-12-20 13:12:45.000000000 +0300
+++ postfix-3.10.3/debian/po/pt.po	2025-07-11 00:50:43.000000000 +0300
@@ -1,26 +1,30 @@
-# Portuguese translation for postfix's debconf messages
-# Copyright (C) 2006
+# Translation for postfix debconf messages to European Portuguese
+# Copyright (C) 2006 the postfix copyright holder
 # This file is distributed under the same license as the postfix package.
-# Miguel Figueiredo <elmig@debianpt.org>, 2006-2016.
 #
+#
+# Miguel Figueiredo <elmig@debianpt.org>, 2006-2016.
+# Américo Monteiro <a_monteiro@gmx.com>, 2025.
 msgid ""
 msgstr ""
-"Project-Id-Version: postfix\n"
+"Project-Id-Version: postfix 3.10.2-1\n"
 "Report-Msgid-Bugs-To: postfix@packages.debian.org\n"
 "POT-Creation-Date: 2024-12-13 00:06+0300\n"
-"PO-Revision-Date: 2017-01-04 22:46+0000\n"
-"Last-Translator: Miguel Figueiredo <elmig@debianpt.org>\n"
-"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"PO-Revision-Date: 2025-06-07 17:15+0100\n"
+"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
+"Language-Team: Portuguese <>\n"
 "Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 22.12.3\n"
 
 #. Type: boolean
 #. Description
 #: ../templates:1001
 msgid "Ignore incorrect hostname entry?"
-msgstr "Ignorar a entrada com o hostname errada?"
+msgstr "Ignorar a entrada com o nome de máquina errada?"
 
 #. Type: boolean
 #. Description
@@ -41,16 +45,15 @@
 "separated by full stops.'"
 msgstr ""
 "A RFC 1035 diz que 'cada componente tem de iniciar com um alfanumérico, "
-"terminar com um alfanumérico e conter apenas alfanuméricos e hifens. Os "
+"terminar com um alfanumérico e conter apenas alfanuméricos e hífens. Os "
 "componentes têm de ser separados por pontos finais.'"
 
 #. Type: boolean
 #. Description
 #: ../templates:1001
-#, fuzzy
 #| msgid "Please choose whether you want to keep that choice anyway."
 msgid "Please check and confirm if you want to keep your entry."
-msgstr "Por favor escolha se deseja manter, na mesma, essa escolha?"
+msgstr "Por favor verifique e confirme se deseja manter o que inseriu."
 
 #. Type: select
 #. Choices
@@ -62,7 +65,7 @@
 #. this will break the choices shown to users
 #: ../templates:2001
 msgid "No configuration"
-msgstr "Sem configuração"
+msgstr "Nenhuma configuração"
 
 #. Type: select
 #. Choices
@@ -115,10 +118,9 @@
 #. Type: select
 #. Description
 #: ../templates:2002
-#, fuzzy
 #| msgid "General type of mail configuration:"
 msgid "General mail configuration type:"
-msgstr "Tipo geral de configuração de mail:"
+msgstr "Tipo de configuração de mail geral:"
 
 #. Type: select
 #. Description
@@ -126,13 +128,12 @@
 msgid ""
 "Please select the mail server configuration type that best meets your needs."
 msgstr ""
-"Por favor escolha o tipo de configuração do servidor de mail que melhor se "
-"adequa às suas necessidades."
+"Por favor escolha o tipo de configuração do servidor de mail melhor "
+"apropriado às suas necessidades."
 
 #. Type: select
 #. Description
 #: ../templates:2002
-#, fuzzy
 #| msgid ""
 #| " No configuration:\n"
 #| "  Should be chosen to leave the current configuration unchanged.\n"
@@ -162,7 +163,7 @@
 "  The only delivered mail is the mail for local users. There is no\n"
 "  network."
 msgstr ""
-" Sem configuração:\n"
+" Nenhuma configuração:\n"
 "  Deve ser escolhido para deixar a configuração actual inalterada.\n"
 " Site Internet:\n"
 "  O mail é enviado e recebido directamente utilizando SMTP.\n"
@@ -170,10 +171,11 @@
 "  O mail é recebido directamente utilizando SMTP ou correndo um utilitário\n"
 "  como o fetchmail. O mail que sai é enviado utilizando um smarthost.\n"
 " Sistema satélite\n"
-"  Todo o mail é enviado para outra máquina, chamada \"smarthost\".\n"
-" Apenas entrega local:\n"
-"  O único mail entregue é o mail para os utilizadores locais. Não existe "
-"rede."
+"  Todo o mail é enviado para outra máquina, chamada \"smarthost\",\n"
+"  para entrega.\n"
+" Apenas local:\n"
+"  O único mail entregue é o mail para os utilizadores locais. Não existe\n"
+"  nenhuma rede."
 
 #. Type: error
 #. Description
@@ -191,12 +193,12 @@
 " - Editing /etc/postfix/main.cf to your liking;\n"
 " - Running 'service postfix start'."
 msgstr ""
-"Você escolheu 'Sem Configuração'. O Postfix não será configurado e, por "
-"omissão, não será iniciado. Por favor, posteriormente corra 'dpkg-"
+"Você escolheu 'Nenhuma Configuração'. O Postfix não será configurado e "
+"por predefinição não será iniciado. Por favor, posteriormente corra 'dpkg-"
 "reconfigure postfix', ou configure-o você mesmo de uma das seguintes "
 "formas:\n"
-" - Editar /etc/postfix/main.cf ao seu gosto;\n"
-" - Correr 'service postfix start'."
+" - Editando o /etc/postfix/main.cf a seu gosto;\n"
+" - Correndo 'service postfix start'."
 
 #. Type: string
 #. Description
@@ -207,7 +209,6 @@
 #. Type: string
 #. Description
 #: ../templates:4001
-#, fuzzy
 #| msgid ""
 #| "The \"mail name\" is the domain name used to \"qualify\" _ALL_ mail "
 #| "addresses without a domain name. This includes mail to and from <root>: "
@@ -219,7 +220,7 @@
 "make your machine send out mail from root@example.org unless root@example."
 "org has told you to."
 msgstr ""
-"O \"nome de mail\" é o nome do domínio utilizado para \"qualificar\" _TODOS_ "
+"O 'nome de mail' é o nome do domínio utilizado para 'qualificar' _TODOS_ "
 "os endereços de mail sem um nome de domínio. Isto inclui mail de e para "
 "<root>: por favor não faça a sua máquina enviar mail de root@exemplo.org a "
 "menos que root@exemplo.org lhe tenha dito para o fazer."
@@ -232,7 +233,7 @@
 "fully qualified domain name (FQDN)."
 msgstr ""
 "Este nome será também utilizado por outros programas. Deve ser o único, nome "
-"de domínio completo (FQDN)."
+"de domínio totalmente qualificado (FQDN)."
 
 #. Type: string
 #. Description
@@ -250,7 +251,7 @@
 #. Description
 #: ../templates:5001
 msgid "Other destinations to accept mail for (blank for none):"
-msgstr "Outros destinos para os quais aceitar mail? (vazio para nenhum):"
+msgstr "Outros destinos para os quais aceitar mail (vazio para nenhum):"
 
 #. Type: string
 #. Description
@@ -263,13 +264,13 @@
 "Por favor forneça uma lista de domínios separados por vírgulas para os quais "
 "esta máquina deve considerar-se ela própria como o destino final. Se é um "
 "gateway de um domínio de mail, você provavelmente quer incluir o domínio de "
-"topo."
+"nível de topo."
 
 #. Type: string
 #. Description
 #: ../templates:6001
 msgid "SMTP relay host (blank for none):"
-msgstr "Host de relay SMTP? (vazio para nenhum):"
+msgstr "Máquina de relay SMTP? (vazio para nenhum):"
 
 #. Type: string
 #. Description
@@ -279,20 +280,19 @@
 "the form [destination] to turn off MX lookups. Leave this blank for no relay "
 "host."
 msgstr ""
-"Especifique um domínio, máquina, máquina:port, [endereço] ou [endereço]:"
-"port. Utilize a forma [destino] para desligar as verificações de MX.  Deixe "
+"Especifique um domínio, máquina, máquina:porto, [endereço] ou [endereço]:"
+"porto. Utilize a forma [destino] para desligar as verificações de MX.  Deixe "
 "isto em branco para nenhuma máquina de relay."
 
 #. Type: string
 #. Description
 #: ../templates:6001
 msgid "Do not specify more than one host."
-msgstr "Não especificar mais do que uma máquina."
+msgstr "Não especifique mais do que uma máquina."
 
 #. Type: string
 #. Description
 #: ../templates:6001
-#, fuzzy
 #| msgid ""
 #| "The relayhost parameter specifies the default host to send mail to when "
 #| "no entry is matched in the optional transport(5) table. When no relay "
@@ -302,10 +302,10 @@
 "when no entry is matched in the optional transport(5) table. When no relay "
 "host is given, mail is routed directly to the destination."
 msgstr ""
-"O parâmetro relayhost especifica a máquina por omissão para enviar mail "
-"quando nenhuma entrada coincide na tabela opcional de transport(5). Quando "
-"não é dado nenhum relayhost, o mail é encaminhado directamente para o "
-"destino."
+"O parâmetro relayhost especifica a máquina externa predefinida para enviar "
+"mail quando nenhuma entrada coincide na tabela opcional de transport(5). "
+"Quando não é dado nenhum relayhost, o mail é encaminhado directamente "
+"para o destino."
 
 #. Type: boolean
 #. Description
@@ -363,9 +363,9 @@
 "installation time will be used. You may override this default with any of "
 "the following:"
 msgstr ""
-"Por omissão, quaisquer que sejam os protocolos de Internet que estejam "
-"habilitados no sistema na altura da instalação.  Você pode ultrapassar este "
-"comportamento por omissão com quaisquer dos seguintes:"
+"Por predefinição, quaisquer que sejam os protocolos de Internet que estejam "
+"habilitados no sistema na altura da instalação.  Você pode ultrapassar esta "
+"predefinição com quaisquer dos seguintes:"
 
 #. Type: select
 #. Description
@@ -388,7 +388,6 @@
 #. Type: string
 #. Description
 #: ../templates:9001
-#, fuzzy
 #| msgid ""
 #| "Please choose the character that will be used to define a local address "
 #| "extension."
@@ -396,14 +395,14 @@
 "Please choose a character used as recipient delimiter that will indicate a "
 "local address extension."
 msgstr ""
-"Por favor escolha qual o caractere que será utilizado para definir uma "
-"extensão de endereço local?"
+"Por favor escolha o caractere que será utilizado como delimitador de "
+"recipiente que irá indicar uma extensão de endereço local."
 
 #. Type: string
 #. Description
 #: ../templates:9001
 msgid "To not use address extensions, leave the string blank."
-msgstr "Deixar a string vazia, para não utilizar extensões de endereço."
+msgstr "Para não utilizar extensões de endereço, deixe a string vazia."
 
 #. Type: error
 #. Description
@@ -418,8 +417,8 @@
 "The recipient delimiter must be a single character. '${enteredstring}' is "
 "what you entered."
 msgstr ""
-"O delimitador de recipiente tem de ser um único caractere. "
-"'${enteredstring}' é o que você introduziu."
+"O delimitador de recipiente tem de ser um caractere único. "
+"Você inseriu '${enteredstring}'."
 
 #. Type: string
 #. Description
@@ -437,10 +436,10 @@
 "via one IP version, the unused value(s) may be removed."
 msgstr ""
 "Por favor especifique os blocos de rede para os quais esta máquina deve "
-"fazer relay ao mail?  A pré-definição é apenas a máquina local, que é "
-"necessário a alguns clientes de mail. A pré-definição inclui a máquina local "
-"para IPv4 e IPv6, Se a ligação for apenas através de uma versão do protocolo "
-"IP, o(s) valor(es) não utilizado(s) poderão ser removidos."
+"fazer relay ao mail?  A predefinição é apenas a máquina local, que é "
+"necessário a alguns clientes de mail. A predefinição inclui a máquina local "
+"para IPv4 e IPv6, Se a ligação for apenas feita através de uma versão do "
+"protocolo IP, os valores não utilizados podem ser removidos."
 
 #. Type: string
 #. Description
@@ -456,7 +455,6 @@
 #. Type: string
 #. Description
 #: ../templates:11001
-#, fuzzy
 #| msgid ""
 #| "To use the postfix default (which is based on the connected subnets), "
 #| "leave this blank."
@@ -464,8 +462,8 @@
 "To use the Postfix default (which is based on the connected subnets), leave "
 "this blank."
 msgstr ""
-"Para utilizar a omissão do postfix (que é baseada em redes ligadas), deixe "
-"isto em branco."
+"Para utilizar a predefinição do Postfix (que é baseada nas sub-redes "
+"ligadas), deixe isto em branco."
 
 #. Type: string
 #. Description
@@ -476,7 +474,6 @@
 #. Type: string
 #. Description
 #: ../templates:12001
-#, fuzzy
 #| msgid ""
 #| "Please specify the limit that Postfix should place on mailbox files to "
 #| "prevent runaway software errors. A value of zero (0) means no limit. The "
@@ -488,16 +485,17 @@
 "default is 51200000."
 msgstr ""
 "Por favor especifique o limite que o Postfix deve colocar nos ficheiros da "
-"mailbox para prevenir erros de software,  Um valor de zero (0) significa sem "
-"limite.  (A omissão do original é 51200000.)"
+"mailbox para restringir a utilização do sistema de ficheiros por um "
+"ficheiro único (potencialmente devido a abuso do mail ou erros do "
+"software). Um valor de zero (0) significa sem limite. A predefinição "
+"original do autor é 51200000."
 
 #. Type: string
 #. Description
 #: ../templates:13001
-#, fuzzy
 #| msgid "Root and postmaster mail recipient:"
 msgid "Recipient for root and postmaster mail:"
-msgstr "Destinatário do mail para root e postmaster:"
+msgstr "Recipiente para mail de root e postmaster:"
 
 #. Type: string
 #. Description
@@ -507,7 +505,7 @@
 "redirected to the user account of the actual system administrator."
 msgstr ""
 "O mail para o 'postmaster', 'root' e outras contas de sistema necessitam ser "
-"redireccionadas para a conta do utilizador do administrador de sistema."
+"redirecionadas para a conta do utilizador do administrador de sistema real."
 
 #. Type: string
 #. Description
@@ -528,7 +526,6 @@
 #. Type: string
 #. Description
 #: ../templates:13001
-#, fuzzy
 #| msgid ""
 #| "If you already have a /etc/aliases file and it does not have an entry for "
 #| "root, then you should add this entry.  Leave this blank to not add one."
@@ -538,426 +535,3 @@
 msgstr ""
 "Se já tem um ficheiro /etc/aliases e não tiver uma entrada para root, então "
 "deverá acrescentar esta entrada. Deixe em branco para não acrescentar uma."
-
-#~ msgid "Update configuration to avoid compatibility warnings?"
-#~ msgstr "Actualizar a configuração para evitar avisos de compatibilidade?"
-
-#, fuzzy
-#~| msgid ""
-#~| "This upgrade of postfix changes some default values in the "
-#~| "configuration. As part of this upgrade, the following will be changed: "
-#~| "(1) chrooted components will be changed from '-' to 'y' in master.cf, "
-#~| "and (2) myhostname will be set to a fully-qualified domain name if it is "
-#~| "not already such.  The install will be aborted if you do not allow the "
-#~| "change."
-#~ msgid ""
-#~ "This upgrade of Postfix changes some default values in the configuration. "
-#~ "As part of this upgrade, the following will be changed: (1) chrooted "
-#~ "components will be changed from '-' to 'y' in master.cf, and (2) "
-#~ "myhostname will be set to a fully-qualified domain name if it is not "
-#~ "already such. The install will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix altera alguns valores predefinidos na "
-#~ "configuração. Como parte desta actualização, o seguinte será alterado: "
-#~ "(1) os componentes chrooted irão mudar de '-' para 'y' no master.cf, e "
-#~ "(2) myhostname será definido para um nome de domínio totalmente "
-#~ "qualificado se ainda não o for. A instalação irá abortar se não permitir "
-#~ "a alteração."
-
-#~ msgid "Update main.cf for daemon_directory change?"
-#~ msgstr "Actualizar o main.cf para a alteração daemon_directory?"
-
-#, fuzzy
-#~| msgid ""
-#~| "This upgrade of postfix changes where daemons are located, and your "
-#~| "postfix configuration explicitly specifies the old location.  The "
-#~| "install will be aborted if you do not allow the change."
-#~ msgid ""
-#~ "This upgrade of Postfix changes where daemons are located, and your "
-#~ "Postfix configuration explicitly specifies the old location. The install "
-#~ "will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix altera onde estão localizados os daemons, e "
-#~ "a sua configuração do postfix especifica explicitamente a antiga "
-#~ "localização. A instalação será abortada se não permitir a alteração."
-
-#~ msgid "Update dynamicmaps.cf for 3.0?"
-#~ msgstr "Actualizar dynamicmaps.cf para 3.0?"
-
-#, fuzzy
-#~| msgid ""
-#~| "Postfix version 3.0 changes how dynamic maps are delivered, and your "
-#~| "dynamicmaps.cf does not reflect that.  Accept this option to convert "
-#~| "dynamicmaps.cf to the version required for 3.0."
-#~ msgid ""
-#~ "Postfix version 3.0 changes how dynamic maps are delivered, and your "
-#~ "dynamicmaps.cf does not reflect that. Accept this option to convert "
-#~ "dynamicmaps.cf to the version required for 3.0."
-#~ msgstr ""
-#~ "O Postfix versão 3.0 altera como são entregues os dynamic maps, e o seu "
-#~ "dynamicmaps.cf não reflecte isso. Aceite esta opção para converter o "
-#~ "dynamicmaps.cf para a versão necessária para a versão 3.0."
-
-#~ msgid "Add a 'mydomain' entry in main.cf for upgrade?"
-#~ msgstr "Acrescentar uma entrada 'mydomain' no main.cf para a actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.3.3-2 and later require changes in main.cf. "
-#~ "Specifically, mydomain must be specified, since hostname(1) is not a "
-#~ "fully qualified domain name (FQDN)."
-#~ msgstr ""
-#~ "As versões 2.3.3-2 e posteriores do Postfix necessitam de alterações no "
-#~ "main.cf. Especificamente, o mydomain tem de ser especificado, já que o "
-#~ "hostname(1) não é um nome de domínio totalmente qualificado (FQDN)."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically set mydomain "
-#~ "based on the FQDN of the machine."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado.  Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração.  Aceite esta opção para definir automaticamente "
-#~ "o mydomain baseado no FQDN da máquina."
-
-#~ msgid "Set smtpd_relay_restrictions in main.cf for upgrade?"
-#~ msgstr "Definir smtpd_relay_restrictions no main.cf na actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.10 adds smtpd_relay_restrictions, to separate relaying "
-#~ "restrictions from recipient restrictions, and you have a non-default "
-#~ "value for smtpd_recipient_restrictions."
-#~ msgstr ""
-#~ "O Postfix versão 2.10 acrescenta smtpd_relay_restriction, para separar as "
-#~ "restrições de relay das restricões dos destinatários, e você tem um valor "
-#~ "não pré-definido para smtpd_recipient_restrictions."
-
-#~ msgid ""
-#~ "Failure to do this may result in deferred or bounced mail after the "
-#~ "upgrade.  Accept this option to set smtpd_relay_restrictions equal to "
-#~ "smtpd_recipient_restrictions."
-#~ msgstr ""
-#~ "Falhar fazer isto pode resultar em mail atrasado ou não entregue após a "
-#~ "actualização. Aceite esta opção para definir smtpd_relay_restrictions "
-#~ "igual a smtpd_recipient_restrictions."
-
-#~ msgid "Update master.cf for merged lmtp/smtp binary?"
-#~ msgstr "Actualizar o master.cf para binário de lmtp/smtp fundidos?"
-
-#~ msgid ""
-#~ "This upgrade of postfix drops the \"lmtp\" symlink, and your "
-#~ "configuration (master.cf) refers to it: lmtp was merged into smtp long "
-#~ "ago.  The install will be aborted if you do not allow the change."
-#~ msgstr ""
-#~ "Esta actualização do postfix larga o symlink \"lmtp\", e a sua "
-#~ "configuração (master.cf) refere-se a ele:o lmtp foi junto a smtp à muito "
-#~ "tempo. A instalação será abortada se não permitir a alteração."
-
-#~ msgid "Add 'sqlite' entry to dynamicmaps.cf?"
-#~ msgstr "Acrescentar a entrada 'sqlite' a dynamicmaps.cf?"
-
-#~ msgid ""
-#~ "Postfix version 2.9 adds sqlite support to maps, but your dynamicmaps.cf "
-#~ "does not reflect that.  Accept this option to add support for sqlite maps."
-#~ msgstr ""
-#~ "O Postfix 2.9 acrescenta suporte para sqlite em mapas, mas o seu "
-#~ "dynamicmaps.cf não o reflecte. Aceite esta opção se desejar acrescentar "
-#~ "suporte para mapas sqlite."
-
-#~ msgid "Install postfix despite an unsupported kernel?"
-#~ msgstr "Instalar o postfix apesar de um kernel não suportado?"
-
-#~ msgid ""
-#~ "Postfix uses features that are not found in kernels prior to 2.6. If you "
-#~ "proceed with the installation, Postfix will not run."
-#~ msgstr ""
-#~ "O Postfix utiliza funcionalidades que não se encontram em kernels "
-#~ "anteriores ao 2.6. Se continuar com a instalação, o Postfix não irá "
-#~ "correr."
-
-#~ msgid "Correct retry entry in master.cf for upgrade?"
-#~ msgstr "Corrigir a entrada 'retry' no master.cf para a actualização?"
-
-#~ msgid ""
-#~ "Postfix version 2.4 requires that the retry service be added to master.cf."
-#~ msgstr ""
-#~ "O Postfix versão 2.4 necessita que o serviço retry seja acrescentado ao "
-#~ "master.cf."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.4 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado.  Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração.  Aceite esta opção para tornar automaticamente o "
-#~ "master.cf compatível nesse aspecto com o Postfix 2.4."
-
-#~ msgid "Correct tlsmgr entry in master.cf for upgrade?"
-#~ msgstr "Corrigir a entrada de tlsmgr no master.cf para a actualização?"
-
-#~ msgid "Postfix version 2.2 has changed the invocation of tlsmgr."
-#~ msgstr "O Postfix versão 2.2 mudou a invocação de tlsmgr."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer. Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself. Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.2 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado.  Rejeite esta opção "
-#~ "para abortar a actualização, dando-lhe a oportunidade de acrescentar você "
-#~ "mesmo esta configuração.  Aceite esta opção para tornar automaticamente o "
-#~ "master.cf compatível nesse aspecto com o Postfix 2.2."
-
-#~ msgid ""
-#~ "Postfix version 2.0.2 and later require changes in dynamicmaps.cf. "
-#~ "Specifically, wildcard support is gone, and with it, %s expansion.  Any "
-#~ "changes that you made to dynamicmaps.cf that relied on these features "
-#~ "will need to be fixed by you.  Failure to correct these will result in a "
-#~ "broken mailer."
-#~ msgstr ""
-#~ "As versões 2.0.2 e posteriores do postfix necessitam de alterações em "
-#~ "dynamicmaps.cf. Especificamente, os wildcards já não são suportados, e "
-#~ "também, a expansão %s. Quaisquer alterações que você faça a dynamicmaps."
-#~ "cf que sejam baseadas nessas habilidades têm de ser corrigidas agora por "
-#~ "si.  Falhar corrigir isso resultará num mailer estragado."
-
-#~ msgid ""
-#~ "Should dynamicmaps.cf be automatically changed?  Decline this option to "
-#~ "abort the upgrade, giving you the opportunity to eliminate wildcard and "
-#~ "%s-expansion-dependent configuration.  Accept this option if you have no "
-#~ "such configuration, and automatically make dynamicmaps.cf compatible with "
-#~ "Postfix 2.0.2 in this respect."
-#~ msgstr ""
-#~ "Deve o dynamicmaps.cf ser modificado automaticamente?  Rejeite esta opção "
-#~ "para cancelar a actualização, dando a oportunidade de eliminar wildcards "
-#~ "e configuração dependente da expansão-%s.  Aceite esta opção se não tem "
-#~ "tal configuração, e neste aspecto tornar automaticamente o dynamicmaps.cf "
-#~ "compatível com o Postfix 2.0.2."
-
-#~ msgid "Correct master.cf for upgrade?"
-#~ msgstr "Corrigir msster.cf para a actualização?"
-
-#~ msgid ""
-#~ "Should this configuration be automatically added to master.cf?  Decline "
-#~ "this option to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself.  Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.1 in this respect."
-#~ msgstr ""
-#~ "Deve esta configuração ser automaticamente acrescentada a master.cf?  "
-#~ "Rejeite esta opção para cancelar a actualização, ficando com a "
-#~ "oportunidade de acrescentar esta configuração você mesmo.  Aceite esta "
-#~ "opção para automaticamente tornar neste aspecto o master.cf compatível "
-#~ "com o Postfix 2.1."
-
-#~ msgid ""
-#~ "Postfix version 2.1 renamed \"nqmgr\" to \"qmgr\", and you are using "
-#~ "\"nqmgr\"."
-#~ msgstr ""
-#~ "O Postfix versão 2.1 renomeou \"nqmgr\" para \"qmgr\", e você está a "
-#~ "utilizar \"nqmgr\"."
-
-#~ msgid ""
-#~ "Failure to fix this will result in a broken mailer.  Decline this option "
-#~ "to abort the upgrade, giving you the opportunity to add this "
-#~ "configuration yourself.  Accept this option to automatically make master."
-#~ "cf compatible with Postfix 2.1 in this respect."
-#~ msgstr ""
-#~ "Falhar corrigir isto resultará num mailer estragado.  Rejeite esta opção "
-#~ "para cancelar a actualização, dando-lhe a oportunidade de acrescentar "
-#~ "você mesmo esta configuração.  Aceite esta opção para tornar "
-#~ "automaticamente o master.cf compatível nesse aspecto com o Postfix 2.1."
-
-#~ msgid "Should Postfix upgrade hash and btree maps?"
-#~ msgstr "Deve o Postfix actualizar os mapas hash e btree?"
-
-#~ msgid ""
-#~ "Postfix has switched to db4, and this may require maps to be upgraded."
-#~ msgstr ""
-#~ "O Postfix mudou para db4, isto pode necessitar de que os mapas sejam "
-#~ "actualizados."
-
-#~ msgid "Do you want to automatically attempt the conversion?"
-#~ msgstr "Deseja tentar a conversão automaticamente?"
-
-#~ msgid "Transport map incompatibility"
-#~ msgstr "Incompatibilidade de mapa de transporte"
-
-#~ msgid ""
-#~ "You have a transport map defined, and there is an incompatible change in "
-#~ "how transport maps are used.  Postfix will not be restarted automatically."
-#~ msgstr ""
-#~ "Você tem o mapa de transporte definido, e existe uma alteração "
-#~ "incompatível em como são utilizados os mapas de transporte.  O Postfix "
-#~ "não será automaticamente reiniciado."
-
-#~ msgid ""
-#~ "Transport map entries override $mydestination.  If you use transport "
-#~ "maps, it is better to always have explicit entries for all domain names "
-#~ "you have in $mydestination.  See the html/faq.html sections for firewalls "
-#~ "and intranets.  If you have transport entries for parent domains of "
-#~ "anything delivered locally, you will probably need to add specific "
-#~ "entries for the destination domains before you restart Postfix."
-#~ msgstr ""
-#~ "As entradas de mapa de transporte sobrepõem-se a $mydestination.  Se você "
-#~ "utiliza mapas de transporte, é melhor ter sempre entradas explícitas para "
-#~ "todos os nomes de domínios que tem em $mydestination.  Veja as secções "
-#~ "para firewalls e intranets em html/faq.html.  Se você tem entradas de "
-#~ "transporte para domínios-pai de qualquer coisa entregue localmente, você "
-#~ "irá provavelmente necessitar de acrescentar entradas específicas para os "
-#~ "domínios de destino antes de reiniciar o Postfix."
-
-#~ msgid "The string you have entered"
-#~ msgstr "A string que introduziu"
-
-#~ msgid "\"${enteredstring}\""
-#~ msgstr "\"${enteredstring}\""
-
-#~ msgid ""
-#~ "No configuration, Internet Site, Internet with smarthost, Satellite "
-#~ "system, Local only"
-#~ msgstr ""
-#~ "Sem configuração, Site Internet, Internet com smarthost, sistema "
-#~ "Satélite, apenas Local"
-
-#~ msgid ""
-#~ "You have several choices for general configuration at this point.  If you "
-#~ "have your debconf priority set to 'low' or 'medium', you will be asked "
-#~ "more questions later.  You can always run \"dpkg-reconfigure --"
-#~ "priority=low postfix\" at a later point if you want to see these "
-#~ "questions again."
-#~ msgstr ""
-#~ "Nesta altura você tem várias escolhas para a configuração geral. Se tem a "
-#~ "prioridade do seu debconf definida para 'baixa' ou 'média', ser-lhe-ão "
-#~ "feitas mais questões posteriormente.  Mais tarde, se desejar ver as "
-#~ "questões novamente você pode sempre correr \"dpkg-reconfigure --"
-#~ "priority=low postfix\"."
-
-#~ msgid ""
-#~ "No configuration - IF YOU WANT THE INSTALL TO LEAVE YOUR CONFIG ALONE, "
-#~ "CHOOSE THIS OPTION.  No configuration changes will be done now:  If you "
-#~ "have not already configured Postfix, your mail system will be broken and "
-#~ "should not be used. You must then do the configuration yourself by "
-#~ "editing /usr/share/postfix/main.cf.dist and saving your changes as /etc/"
-#~ "postfix/main.cf, or by running dpkg-reconfigure Postfix.  main.cf will "
-#~ "not be modified by the Postfix install process."
-#~ msgstr ""
-#~ "Sem configuração - SE DESEJA QUE A INSTALAÇÃO NÂO TOQUE NA SUA "
-#~ "CONFIGURAÇÃO, ESCOLHA ESTA OPÇÃO. Por agora não serão feitas alterações à "
-#~ "configuração: Se ainda não configurou o Postfix, o seu sistema de mail "
-#~ "não estará funcional e não deve ser utilizado. Deve ser você a "
-#~ "configurar, para isso editar /usr/share/postfix/main.cf.dist e guardar as "
-#~ "alterações  como /etc/postfix/main.cf, ou correr dpkg-reconfigure "
-#~ "postfix.  O main.cf não será modificado pelo processo de instalação do "
-#~ "Postfix."
-
-#~ msgid ""
-#~ "Internet site - mail is sent and received directly using SMTP. If your "
-#~ "needs don't fit neatly into any category, you probably want to start with "
-#~ "this one and then edit the config file by hand."
-#~ msgstr ""
-#~ "Site de Internet - o mail é enviado e recebido directamente através de "
-#~ "SMTP. Se as suas necessidades não encaixam exactamente nesta categoria, "
-#~ "provavelmente você irá querer começar com este e editar manualmente o "
-#~ "ficheiro de configuração."
-
-#~ msgid ""
-#~ "Internet site using smarthost - You receive Internet mail on this "
-#~ "machine, either directly by SMTP or by running a utility such as "
-#~ "fetchmail. Outgoing mail is sent using a smarthost. optionally with "
-#~ "addresses rewritten. This is probably what you want for a dialup system."
-#~ msgstr ""
-#~ "Site de Internet com smarthost - Você recebe mail da Internet nesta "
-#~ "máquina, quer directamente por SMTP ou correndo um utilitário como o "
-#~ "fetchmail. O mail que sai é enviado utilizando um smarthost, "
-#~ "opcionalmente com os endereços re-escritos. Isto é provavelmente o que "
-#~ "você quer para um sistema dialup."
-
-#~ msgid ""
-#~ "Satellite system - All mail is sent to another machine, called a \"smart "
-#~ "host\" for delivery.  No mail is received locally."
-#~ msgstr ""
-#~ "Sistema Satélite - Todo o mail para entrega é enviado para outra máquina, "
-#~ "chamada de \"smart host\". Não é recebido nenhum mail localmente."
-
-#~ msgid ""
-#~ "Local delivery only - You are not on a network.  Mail for local users is "
-#~ "delivered."
-#~ msgstr ""
-#~ "Apenas entrega Local - Você não está numa rede.  É entregue o mail para "
-#~ "utilizadores locais."
-
-#~ msgid "1) Editing /etc/postfix/main.cf to your liking"
-#~ msgstr "1) Editar ao seu gosto /etc/postfix/main.cf"
-
-#~ msgid "2) Running /etc/init.d/postfix start"
-#~ msgstr "2) Correr /etc/init.d/postfix start"
-
-#~ msgid "Mail name?"
-#~ msgstr "Nome de Mail?"
-
-#~ msgid ""
-#~ "Your `mail name' is the hostname portion of the address to be shown on "
-#~ "outgoing news and mail messages (following the username and @ sign)."
-#~ msgstr ""
-#~ "O seu `nome de mail' é a porção do endereço do hostname a ser mostrado "
-#~ "nas mensagens de news e de mail enviado (seguidos do nome do utilizador e "
-#~ "o símbolo @)."
-
-#~ msgid "all, ipv6, ipv4"
-#~ msgstr "todos, ipv6, ipv4"
-
-#~ msgid "all - use both ipv4 and ipv6 addresses"
-#~ msgstr "todos - escutar ambos endereços ipv4 e ipv6"
-
-#~ msgid "ipv6 - listen only on ipv6 addresses"
-#~ msgstr "ipv6 - escutar apenas endereços ipv6"
-
-#~ msgid "ipv4 - listen only on ipv4 addresses"
-#~ msgstr "ipv4 - escutar apenas endereços ipv4"
-
-#~ msgid "The default is \"no\"."
-#~ msgstr "Por omissão é \"no\"."
-
-#~ msgid "Where should mail for root go"
-#~ msgstr "Para onde deve ir o mail para o root"
-
-#~ msgid ""
-#~ "The user root (and any other users with a uid of 0) must have mail "
-#~ "redirected via an alias, or their mail may be delivered to /var/mail/"
-#~ "nobody.  This is by design:  mail is not delivered to external delivery "
-#~ "agents as root."
-#~ msgstr ""
-#~ "O utilizador root (e quaisquer outros utilizadores com um uid 0) têm de "
-#~ "ter o mail redireccionado através de um alias, ou o seu mail entregue em /"
-#~ "var/mail/nobody.  Isto é do design: o mail não é entregue a agentes de "
-#~ "entrega externos como root."
-
-#~ msgid ""
-#~ "What address should be added to /etc/aliases, if the file is created? "
-#~ "(Leave this blank to not add one.)"
-#~ msgstr ""
-#~ "Que endereço deve acrescentado a /etc/aliases, se o ficheiro for criado?  "
-#~ "(Deixe isto em branco para não adicionar nenhum.)"
-
-#~ msgid "+"
-#~ msgstr "+"
-
-#~ msgid "false"
-#~ msgstr "falso"
-
-#~ msgid "127.0.0.0/8"
-#~ msgstr "127.0.0.0/8"
-
-#~ msgid "0"
-#~ msgstr "0"
-
-#~ msgid "NONE"
-#~ msgstr "NENHUM"
-
-#~ msgid "Bad entry, try again?"
-#~ msgstr "Má entrada, tentar novamente?"
diff -Nru postfix-3.10.2/src/global/mail_version.h postfix-3.10.3/src/global/mail_version.h
--- postfix-3.10.2/src/global/mail_version.h	2025-04-22 18:14:49.000000000 +0300
+++ postfix-3.10.3/src/global/mail_version.h	2025-07-10 00:54:38.000000000 +0300
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE	"20250422"
-#define MAIL_VERSION_NUMBER	"3.10.2"
+#define MAIL_RELEASE_DATE	"20250710"
+#define MAIL_VERSION_NUMBER	"3.10.3"
 
 #ifdef SNAPSHOT
 #define MAIL_VERSION_DATE	"-" MAIL_RELEASE_DATE
diff -Nru postfix-3.10.2/src/smtp/smtp.h postfix-3.10.3/src/smtp/smtp.h
--- postfix-3.10.2/src/smtp/smtp.h	2024-10-11 01:15:24.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp.h	2025-07-10 00:22:54.000000000 +0300
@@ -59,6 +59,9 @@
     VSTRING *host;			/* hostname or empty */
     VSTRING *addr;			/* printable address or empty */
     unsigned port;			/* network byte order or null */
+#ifdef USE_TLS
+    int     tlsreqno;			/* "TLS-Required: no" */
+#endif
     struct DNS_RR *rr;			/* DNS resource record or null */
     struct DNS_RR *mx;			/* DNS resource record or null */
     /* Private members. */
@@ -66,11 +69,18 @@
     struct SMTP_STATE *parent;		/* parent linkage */
 } SMTP_ITERATOR;
 
+#ifdef USE_TLS
+#define IF_USE_TLS(...) (__VA_ARGS__)
+#else
+#define IF_USE_TLS(...)
+#endif
+
 #define SMTP_ITER_INIT(iter, _dest, _host, _addr, _port, state) do { \
 	vstring_strcpy((iter)->dest, (_dest)); \
 	vstring_strcpy((iter)->host, (_host)); \
 	vstring_strcpy((iter)->addr, (_addr)); \
 	(iter)->port = (_port); \
+	IF_USE_TLS((iter)->tlsreqno = 0); \
 	(iter)->mx = (iter)->rr = 0; \
 	vstring_strcpy((iter)->saved_dest, ""); \
 	(iter)->parent = (state); \
@@ -728,7 +738,7 @@
   */
 #define SMTP_KEY_MASK_SCACHE_DEST_LABEL \
 	(SMTP_KEY_FLAG_SERVICE | COND_SASL_SMTP_KEY_FLAG_SENDER \
-	| SMTP_KEY_FLAG_REQ_NEXTHOP)
+	| SMTP_KEY_FLAG_REQ_NEXTHOP | SMTP_KEY_FLAG_TLS_LEVEL)
 
  /*
   * Connection-cache endpoint lookup key. The SENDER, CUR_NEXTHOP, HOSTNAME,
diff -Nru postfix-3.10.2/src/smtp/smtp_connect.c postfix-3.10.3/src/smtp/smtp_connect.c
--- postfix-3.10.2/src/smtp/smtp_connect.c	2025-02-02 00:06:57.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_connect.c	2025-07-10 00:22:54.000000000 +0300
@@ -508,6 +508,24 @@
     SMTP_TLS_POLICY *tls = state->tls;
 
     /*
+     * If the message contains a "TLS-Required: no" header, update the
+     * iterator to limit the policy at TLS_LEV_MAY.
+     * 
+     * We must do this early to avoid possible failure if TLSA record lookups
+     * fail, or if TLSA records are found, but can't be activated because the
+     * security level has been reset to "may".
+     * 
+     * Note that the REQUIRETLS verb in ESMTP overrides the "TLS-Required: no"
+     * header.
+     */
+#ifdef USE_TLS
+    if (var_tls_required_enable
+	&& (state->request->sendopts & SOPT_REQUIRETLS_HEADER)) {
+	iter->tlsreqno = 1;
+    }
+#endif
+
+    /*
      * Determine the TLS level for this destination.
      */
     if (!smtp_tls_policy_cache_query(why, tls, iter)) {
@@ -530,16 +548,6 @@
 #endif
 
     /*
-     * Otherwise, if the TLS level is not TLS_LEV_NONE or some non-level, and
-     * the message contains a "TLS-Required: no" header, limit the level to
-     * TLS_LEV_MAY.
-     */
-    else if (var_tls_required_enable && tls->level > TLS_LEV_NONE
-	     && (state->request->sendopts & SOPT_REQUIRETLS_HEADER)) {
-	tls->level = TLS_LEV_MAY;
-    }
-
-    /*
      * Success.
      */
     return (1);
diff -Nru postfix-3.10.2/src/smtp/smtp_proto.c postfix-3.10.3/src/smtp/smtp_proto.c
--- postfix-3.10.2/src/smtp/smtp_proto.c	2025-01-14 01:40:09.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_proto.c	2025-07-10 00:21:02.000000000 +0300
@@ -926,13 +926,16 @@
      * XXX: The TLS library will salt the serverid with further details of the
      * protocol and cipher requirements including the server ehlo response.
      * Deferring the helo to the digested suffix results in more predictable
-     * SSL session lookup key lengths.
+     * SSL session lookup key lengths. Add the current TLS security level to
+     * account for TLS level overrides based on message content or envelope
+     * metadata.
      */
     serverid = vstring_alloc(10);
     smtp_key_prefix(serverid, "&", state->iterator, SMTP_KEY_FLAG_SERVICE
 		    | SMTP_KEY_FLAG_CUR_NEXTHOP	/* With port */
 		    | SMTP_KEY_FLAG_HOSTNAME
-		    | SMTP_KEY_FLAG_ADDR);
+		    | SMTP_KEY_FLAG_ADDR
+		    | SMTP_KEY_FLAG_TLS_LEVEL);
 
     if (state->tls->conn_reuse) {
 	TLS_CLIENT_PARAMS tls_params;
diff -Nru postfix-3.10.2/src/smtp/smtp_tls_policy.c postfix-3.10.3/src/smtp/smtp_tls_policy.c
--- postfix-3.10.2/src/smtp/smtp_tls_policy.c	2024-10-24 22:01:42.000000000 +0300
+++ postfix-3.10.3/src/smtp/smtp_tls_policy.c	2025-07-10 00:22:54.000000000 +0300
@@ -651,7 +651,12 @@
     tls->level = global_tls_level();
     site_level = TLS_LEV_NOTFOUND;
 
-    if (tls_policy) {
+    if (iter->tlsreqno) {
+	if (msg_verbose)
+	    msg_info("%s: no tls policy lookup", __func__);
+	if (tls->level > TLS_LEV_MAY)
+	    tls->level = TLS_LEV_MAY;
+    } else if (tls_policy) {
 	tls_policy_lookup(tls, &site_level, dest, "next-hop destination");
     } else if (tls_per_site) {
 	tls_site_lookup(tls, &site_level, dest, "next-hop destination");

Reply to: