ホスティング業者から提供されたsendmail
を使用して、サーバーにSSHでアクセスできます。リモートサーバーをリレーとして使用するようにローカルsendmail
を構成したいと思います。どうやってやるの?それはまったく可能ですか?
注:ssh user@Host sendmail ...
のようなものを実行するスクリプトを書くことはできますが、より良い解決策があるように思えます。
ローカルで、パスワードなしで新しいSSHキーを作成します。これらの例では、/etc/mail/ssh-sendmail-key
に配置され、MAILUSER
ユーザーが所有します。 MAILUSERをローカルシステムが使用するUnixアカウントに変更します:postfix
、sendmail
、mail
、... root
またはnobody
は推奨されません。
# ssh-keygen -f /etc/mail/ssh-sendmail-key -N ""
# chown MAILUSER /etc/mail/ssh-sendmail-key{,.pub}
/etc/mail/ssh-sendmail-key.pub
の内容をサーバーのauthorized_keysファイルに追加します。
ssh-rsa AAAA....
master.cf
にssh
トランスポートを作成します。
ssh unix - n n - - pipe
user=MAILUSER argv=/usr/bin/ssh -i /etc/mail/ssh-sendmail-key myhostserver /usr/sbin/sendmail -i $recipient
main.cf
に、次を追加します。
default_transport = ssh
ルーター:
ssh:
driver = manualroute
domains = ! +local_domains
transport = ssh
route_list = * foo
輸送:
ssh:
driver = pipe
user = MAILUSER
command = /usr/bin/ssh -i /etc/mail/ssh-sendmail-key myhostserver /usr/sbin/sendmail -i $RECIPIENT