# Use o Protonmail Bridge com Discourse

**URL:** <https://meta.discourse.org/t/use-protonmail-bridge-with-discourse/229503>\
**Category:** Sysadmins\
**Tags:** how-to\
**Created:** [9 Junho , 2022 10:25 UTC](https://meta.discourse.org/t/use-protonmail-bridge-with-discourse/229503 "2022-06-09T10:25:11Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)\
**Post date:** [9 Junho , 2022 10:25 UTC](https://meta.discourse.org/t/use-protonmail-bridge-with-discourse/229503/1 "2022-06-09T10:25:11Z")

</div>

Problema: a) O Protonmail Bridge não consegue escutar em um IP diferente de `127.0.0.1`, e b) O Discourse em um contêiner Docker não consegue enviar requisições SMTP para o `127.0.0.1` da máquina host.

Solução: Configuramos para enviar para `172.17.0.1` (o IP da bridge do Docker na máquina host) e, em seguida, redirecionar para `127.0.0.1`, onde o Protonmail Bridge está escutando.

Fazemos isso usando o Socat.

### Como Fazer

Comece instalando o Socat:  
`apt install socat`

Executaremos o Socat como um serviço. Crie o arquivo de serviço:  
`nano /etc/systemd/system/protonsocat.service`

… e coloque o seguinte conteúdo nele:

```plaintext
[Unit]
Description=Socat Bridge ProtonMail/Discourse
After=protonbridge.service,docker.service
ReloadPropagatedFrom=docker.service

[Service]
ExecStart=socat -d -d -lm TCP4-LISTEN:1026,fork,reuseaddr,so-bindtodevice=docker0,range=172.17.0.0/24 TCP4:127.0.0.1:1025
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target

```

Observações:

- Configuramos o Socat para escutar em todos os IPs `172.17.0.0/24`, porta `1026`, e redirecionar o tráfego para `127.0.0.1:1025`, onde o Protonmail Bridge está escutando.

- Exemplo da documentação do Socat: [socat](http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLE_OPTION_BIND_TCP4)

- `-d -d` imprimirá as mensagens fatais, de erro, de aviso e de notificação; você pode não querer tanto detalhe registrado.

Em seguida, inicie o serviço:  
`systemctl start protonsocat`

Verifique se ele está em execução:  
`systemctl status protonsocat`

E configure-o para iniciar automaticamente na inicialização:  
`systemctl enable protonsocat`

Pronto! Agora, configure o `app.yml` do Discourse e reconstrua:

```yaml
  DISCOURSE_SMTP_ADDRESS: 172.17.0.1
  DISCOURSE_SMTP_PORT: 1026
  DISCOURSE_SMTP_USER_NAME: <nome de usuário SMTP fornecido pelo aplicativo de linha de comando Proton Bridge>
  DISCOURSE_SMTP_PASSWORD: "<senha SMTP - coloque entre aspas>"
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: <o nome de domínio>
  DISCOURSE_NOTIFICATION_EMAIL: <aqui, coloque o endereço do qual o Discourse enviará e-mails transacionais>

```

---

_[View the full topic](https://meta.discourse.org/t/use-protonmail-bridge-with-discourse/229503)._
