# E-mail recebido causa erro com cabeçalho Authentication-Results de RFC 8601 "no result" (authserv-id; none)

**URL:** <https://meta.discourse.org/t/incoming-email-crashes-on-an-rfc-8601-no-result-authentication-results-header-authserv-id-none/413648>\
**Category:** Bug\
**Created:** [Setembro 30, 2026, 12:20pm UTC](https://meta.discourse.org/t/incoming-email-crashes-on-an-rfc-8601-no-result-authentication-results-header-authserv-id-none/413648 "2026-09-30T12:20:10Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![murphsmurf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/murphsmurf/32/579357_2.png) [@murphsmurf](https://meta.discourse.org/u/murphsmurf)\
**Post date:** [Setembro 30, 2026, 12:20pm UTC](https://meta.discourse.org/t/incoming-email-crashes-on-an-rfc-8601-no-result-authentication-results-header-authserv-id-none/413648/1 "2026-09-30T12:20:10Z")

</div>

Quando `email_in_authserv_id` está definido e um e-mail recebido contém um cabeçalho Authentication-Results correspondente sem resultado (`Authentication-Results: ``mx.example.com``; none`, o formato “no-result” da RFC 8601 §2.2), a criação da publicação falha com:

```plaintext
NoMethodError: undefined method 'each' for nil
lib/email/authentication_results.rb:45:in 'block in Email::AuthenticationResults#calc_dmarc'

```

A publicação é perdida e o remetente não recebe nenhum e-mail de rejeição.

**Por quê:** em `parse_header`, o ramo `no_result` de `authres_payload` corresponde, portanto `resinfo_val` é nil e `parsed_resinfo` nunca é atribuído. O resultado é `{ authserv_id: "``mx.example.com``", resinfo: nil }`, e `calc_dmarc` então chama `result[:resinfo].each`.

**Quando acontece:** alguns MTAs adicionam o formato no-result quando não executaram nenhuma verificação. O rspamd faz isso, por exemplo, para e-mails não autenticados de seus `local_addrs`, como e-mails retransmitidos de dentro da rede. A falha só aparece quando uma publicação é criada (`Email::Receiver#create_post` → `auth_res_action`). E-mails rejeitados anteriormente, por exemplo de um desconhecido, nunca chegam até lá.

**Reproduzir** (console rails):

```plaintext
SiteSetting.email_in_authserv_id = "mx.example.com"
Email::AuthenticationResults.new(["mx.example.com; none"]).verdict
# => NoMethodError: undefined method 'each' for nil

```

**Correção sugerida:** em `calc_dmarc`, usar `Array(result[:resinfo]).each do |resinfo|`, ou definir `parsed_resinfo = []` em `parse_header`. Um cabeçalho no-result então conta como cinza, o que corresponde ao seu significado.

Observado na ESR v2026.7.3, e a mesma linha ainda está no `main`.

---

_[View the full topic](https://meta.discourse.org/t/incoming-email-crashes-on-an-rfc-8601-no-result-authentication-results-header-authserv-id-none/413648)._
