メールの送信パターンは
- WebサイトからPHP(phpmailerなど)で送信
- クライアントPC(メーラー)で自サーバードメインのメールアカウントを設定し、メーラーから送信
の2パターンです。
※自サーバーのMTAはPostfixなので、Postfixの前提で質問内容を記載します
※メーラーでのメールアカウント設定は、自サーバーでメールアカウントを作成した際のアカウント情報(アカウント名、パスワード)で設定することを前提にしています。
※自サーバーはCentOSのVPSです。
PHPから送信の場合
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer/src/Exception.php'; require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php'; $mail = new PHPMailer(true); $host = 'smtp.gmail.com'; $username = 'Gmailアカウント@gmail.com'; $password = 'Googleのアプリパスワード'; $from = '自サーバードメインのメールアドレス'; $fromname = '差出人名'; $to = '送信先メールアドレス'; $toname = '宛名'; $subject = '件名'; $body = '本文'; $mail->isSMTP(); $mail->SMTPAuth = true; $mail->Host = $host; $mail->Username = $username; $mail->Password = $password; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->CharSet = "utf-8"; $mail->Encoding = "base64"; $mail->setFrom($from, $fromname); $mail->addAddress($to, $toname); $mail->Subject = $subject; $mail->Body = $body;
を実行すると、受信側での送信元メールアドレスが「Gmailアカウント@gmail.com」になります。これを「自サーバードメインのメールアドレス」になるようにしたいのですが、これまでSMTPリレーをさせたことが無く、根本的な質問も含め、下記についてご教示いただけでしょうか。
-
上記のPHPによるメール送信は、自サーバーのSMTPから送信→GmailのSMTPを経由して送信先アドレスへ送信という流れでメール送信が行われている、という理解で合ってるのでしょうか。
-
メーラーから送信する場合、自サーバーのPostfixでGmailのSMTP認証ファイル、DBファイル、main.cfの追記を行うことでリレー送信ができるということを調べたのですが、この場合は受信側での送信元アドレスは「自サーバードメインのメールアドレス」になるのでしょうか。
-
2のPostfixの設定は、PHPからメールを送信(上記コードの内容で送信)する場合も必要なのでしょうか。(1の質問内容自体にも関わる質問です)
よろしくお願い致します。
【追記】
Gmail経由で送信させようとする目的は、メールの信頼性を高めることです。自サーバーのSMTPからの送信だと、PSFやDKIMなどの対策を行っても、迷惑メールと判定されたり到達しなくなることがあるため、リレー送信させることで、より安定的にメール送信を行いたいと思っています。

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/03/13 13:15
2022/03/13 15:27
2022/03/14 13:31
2022/03/14 14:08
2022/04/06 03:39