全体のイメージ
app → smtp server (mail server) → dns → smtp server (mail server) → mail client
メールサーバー:別名SMTPサーバー。MTAが中で動いているサーバーのこと。
postfix: mta、メールサーバーの役割を果たす。受信、格納、転送。sendmail(MTA)の後継。
msmtp: SMTPクライアント、メールを実際にSMTPプロトコルで送信する。送信。ローカルで実行されるアプリケーションがメールを外部のSMTPサーバーに送る際に便利
sendmailコマンド:postfixやsendmailが提供するコマンドインターフェース。phpのmail関数では内部的にこのコマンドを叩いて、MTAへメールを渡す。
さくらクラウドの場合
サーバに postfixを入れた。postfix(MTA)がメールサーバー(メールサービス)の役割を果たす。
postfix が smtp serverにsmtpプロトコルで送信する
appから postfix への指示が phpの mail関数 を使ってsmtpサービスで送る、もしくは
appから postfix への指示が smtpサービスを直接指定して(smtp手法)送る。
localの開発環境でやる場合
smtpコンテナを作った場合。
app コンテナに msmtp ミドルウェアをインストールしている
php の mail関数を使って飛ばす場合、mail関数を叩いて、msmtpソフトウェアを内部的に使って smtpコンテナにメールを送って、そこからメールが飛ぶ。
直接smtpコンテナを指定する場合(smtp手法)、直でsmtpコンテナに接続して、smptコンテナからメールが飛ぶ。