Using Protonmail Bridge in automation pipelines can be useful for sending emails etc using their SMPT service.
It took a bit to figure out, but in the end it is fairly simple.
You may be interested in more configuration options from Protonbridge CLI docs.
sudo apt update
sudo apt install -y pass gnupg wget libqt5gui5 libqt5core5a libqt5widgets5 libqt5qml5 libqt5network5 libqt5svg5 libpulse-mainloop-glib0 fonts-dejavu libsecret-1-0
This is the trickiest step.
gpg --batch --passphrase '' --quick-gen-key 'ProtonMail Bridge' default default never
pass init "ProtonMail Bridge"
mkdir protonmail-bridge && cd protonmail-bridge
wget https://proton.me/download/bridge/protonmail-bridge_2.3.0-1_amd64.deb
sudo dpkg -i *.deb
Here, substitute $LOGIN_EMAIL
and $LOGIN_PASSWORD
for your actual credentials.
protonmail-bridge --cli << EOT
login
$LOGIN_EMAIL
$LOGIN_PASSWORD
EOT
This is optional. Change the SMTP security from TTL to SSL if needed for your sender.
protonmail-bridge --cli << EOT
change smtp-security ssl
yes
EOT
sleep 5 # just in case we need to wait for bridge to restart.
Next we can get the login info from the bridge.
CONNECTION=$(protonmail-bridge --cli << EOT
info 0
EOT
)
EMAIL_RELAY_PASSWORD=$(echo $CONNECTION | grep -Po 'Password: \K[^ ]+' | head -1)
Hostname will be localhost
.
Port will be 1143
but can be changed with another cli command.
Username will be your login email address.
nohup protonmail-bridge --noninteractive > bridge_log.txt 2>&1 & disown
sleep 1
Thats about it!
You can now send emails using the config we have found:
hostname="localhost"
port=1143
use_ssl=True
username=<your proton email address>
password=$EMAIL_RELAY_PASSWORD