#!/bin/bash
set -e
while read -r account host port fingerprint; do
	test -z $host && continue
	test -z $port && continue
	echo "[*] Updating: $account"
	echo "[*] Old fingerprint: $(tr -d '"' <<< $fingerprint)"
    fingerprint=$(openssl s_client -connect $host:$port -starttls smtp < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout | cut -d'=' -f2)
	echo "[*] New fingerprint: $fingerprint"
    sed -i "/$(cut -d":" -f1 <(echo $host:$port))/,/account/{s/tls_fingerprint \".*\"/tls_fingerprint \"$fingerprint\"/}" ~/.config/msmtp/config
done <<< $(grep 'account\|host\|port\|fingerprint' ~/.config/msmtp/config | awk '{print $2}' | paste -d " "  - - - -)
