Я пытаюсь использовать Реликвия mailx для отправки писем из командной строки в сочетании с Amazon SES SMTP и убедитесь, что сертификат правильно подтвержден во время взаимодействия.
конфигурация почтового аккаунта:
# Heirloom mailx
account mysmtp {
set smtp-use-starttls
#set ssl-verify=ignore
set nss-config-dir=/opt/mynssdb
set smtp-auth=login
set smtp=smtp://email-smtp.us-east-1.amazonaws.com:587
set from="myuser-noreply@somedomain.foo"
set smtp-auth-user=something
set smtp-auth-password=somethingelse
}
Вот как я настраиваю базу данных nss
yum -y install mailx nss-tools curl ca-certificates
TMPCERTS=/tmp
NSSDBDIR=/opt/mynssdb
curl -SL -o "$TMPCERTS/SFSRootCAG2.cer" https://www.amazontrust.com/repository/SFSRootCAG2.cer
curl -SL -o "$TMPCERTS/rootca1.cer" http://crt.rootca1.amazontrust.com/rootca1.cer
curl -SL -o "$TMPCERTS/sca1b.crt" http://crt.sca1b.amazontrust.com/sca1b.crt
mkdir -pv "$NSSDBDIR"
certutil -N -d "$NSSDBDIR" --empty-password
certutil -A -d "$NSSDBDIR" -n 'Starfield Services Root Certificate Authority - G2' \
-t 'CT,,' -i "$TMPCERTS/SFSRootCAG2.cer"
certutil -A -d "$NSSDBDIR" -n 'Amazon Root CA 1' -t 'CT,,' -i "$TMPCERTS/rootca1.cer"
certutil -A -d "$NSSDBDIR" -n 'Amazon' -t 'CTP,,' -i "$TMPCERTS/sca1b.crt"
Итак, когда я выполняю:
echo 'example message' | mailx -v -A mysmtp -s 'Example mail' mytestmailx@mailinator.com
Я получил:
Resolving host email-smtp.us-east-1.amazonaws.com . . . done.
Connecting to 34.195.128.120 . . . connected.
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-GNSRW83U2 qCivn3fu71ZMdcOb8RV0
>>> EHLO 7f7970e2f3c0
250-email-smtp.amazonaws.com
250-8BITMIME
250-SIZE 10485760
250-STARTTLS
250-AUTH PLAIN LOGIN
250 Ok
>>> STARTTLS
220 Ready to start TLS
Comparing DNS name: "email-smtp.us-east-1.amazonaws.com"
Continue (y/n)? "/root/dead.letter" 11/344
. . . message not sent.
Если я включу ssl-verify=ignore
опция в настройках почтового аккаунта все работает.
Я делаю что-то не так, но не знаю, что именно.