imap.gmail.com
tem muitos endereços IP diferentes, o que não é surpreendente para um serviço de alto volume e alta disponibilidade. O servidor DNS aparentemente retorna dois endereços (pelo menos para mim), mas o conjunto de endereços muda com o tempo (permanece o mesmo por alguns minutos devido ao armazenamento em cache).
Quando você define a regra, o servidor DNS retorna dois endereços A1 e A2. O programa iptables é inteligente o suficiente para detectar isso e cria duas regras, uma para cada um dos dois endereços IP.
Alguns minutos depois, você executa seu cliente de e-mail e suas solicitações DNS retornam dois endereços A3 e A4, que na maioria das vezes não serão iguais a A1 e A2. Então o mutt usa o primeiro A3, e esse endereço é bloqueado pelo seu firewall.
O firewall só vê pacotes IP. Não é possível saber qual nome DNS o cliente de email usa. Na verdade, o cliente de e-mail poderia ter usado o endereço IP diretamente. Pacotes IP são endereçados a endereços IP, eles não contêm nomes de host. Pode haver nomes de host dentro da conexão IMAP, mas como você está usando o IMAPS, a conexão é criptografada e o firewall não pode espionar o tráfego.
O servidor envia sua identidade (em um certificado) durante o handshake SSL, para que você possa inspecionar o tráfego e abortar a conexão se o certificado do servidor não for do seu agrado. Você pode fazer isso com o iptables , embora não seja 100% confiável (Eu acho que só funciona se a string que você está combinando estiver dentro de um único pacote TCP). Para fazer isso de forma totalmente confiável, você precisa configurar um proxy sensível ao conteúdo.