WebサーバにPostfixを使用しています。
実際のメールボックスは、DNSを使用し別のサーバで運用したのですが、WebのCGIなどから発信されたメールが、Webサーバ内のPostfixで受信されてしまい困っています。
Webサーバ内のPostfixで発信されたメールは、都度、DNSを検索し、別サーバで管理されているメールボックスで受信するためにはどうすればよいでしょうか?
ご教示いただければ幸いです。
サーバ:CENTOS 6.6
Web:APACHE 2.2
Webサーバのメールサーバ:Postfix ※yumで入れたもの
メールボックス:Gmail
DNSが正常に設定されている(MXがちゃんとGmailを向いている)という前提です。
1.main.cf でリレー先を明示的に指定する
relayhost = [mail.example.com] # MXに指定されているサーバーを指定
方法としては一番固いのですが、これはDNSを検索しない方法です。
2. SMTP-AUTHでメール送信する
少し難しい方法ですが、思い通りの挙動にならないpostfix を削除して、外部メールサーバーから送信する方法です。アプリによっては設定画面がついてたりしますね。
PEAR:Mail を導入して、下記のようなオブジェクトを作成します。
$params = array(
"host" => "smtp.example.com", // SMTPサーバー名
"port" => 587, // ポート番号
"auth" => true, // SMTP認証
"username" => "username", // ユーザー名
"password" => "password" // パスワード
);
$mailObject = Mail::factory("smtp", $params);
?>
「PHP SMTP-AUTH」で検索すれば、下記のサイトなどが出てくるのであsんこうにしてください。
http://d.hatena.ne.jp/mrgoofy33/20110107/1294416496