• 締切済み

Linuxサーバから社内SMTPサーバを経由してメールを送信したい

いつもお世話になっております。 Linuxサーバよりメールを送信したいのですが、同じ社内に設置している別のSMTPサーバを使って送信したいと考えています。 Windowsサーバであれば"php.ini"の"SMTP"に利用したいSMTPサーバを指定してやればよいかと思いますが、Linuxの場合はどうすれば良いでしょうか? 実際にやりたいこととしては、Linuxサーバより公開しているフォームメールのページにアクセスして情報を送信した際に、社内のSMTPサーバを経由してメールが管理者に送信されるというものです。 その他、必要な情報等ありましたら、お申し付けください。 以上、宜しくお願い致します。

みんなの回答

  • bl37
  • ベストアンサー率0% (0/0)
回答No.7

社内のSMTPを経由したいだけであれば"/etc/resolv.conf"に社内のDNSサーバーが指定されていれば動作するはずです。 Linux等のUNIX環境ではシステム本体がメールを使っているのでWindowsの様にsmtpサーバを入れる必要はないです。 (設定が必要な場合もありますが) あとはsendmailコマンドが判断してくれるかとおもいます。 ちなみにメールの送信先をテスト等で一箇所に限定したい場合は、 sendmail_path = sendmail admin@hoge.com とかにしておくと誤って外部に送信されることを防ぐことが出来ます。

noname#246547
noname#246547
回答No.6

ANo.4の補足2 メールソフトを使用せずに、PHPからメールを送信したいのであれば、 socketを使用して、直接SMTPサーバに接続し、メールデータを送信してみては? 注:メールのデータはJISに変換するように。

参考URL:
http://php.s3.to/man/ref.sockets.html
noname#246547
noname#246547
回答No.5

ANo.4の補足 LinuxでのPHPがメール送信するときは、sendmail等とpipeを使用しプロセス間通信を利用して、sendmail等にメールデータを渡し、メールを送信している。 よって、php.iniにsendmail等のpathが必要になってくる windowsでのPHPがメール送信するときは、socketを使用しTCP/IP通信でSMTPサーバにメールデータを渡し、メールを送信している。 よって、php.iniにSMTPサーバ情報を登録する必要がある。 phpのソースを見たことが無いので保証しませんが、 php.iniの設定方法の違いを見る限り、送信手順に上記のような違いがあると思います。 よって、Linuxではメールソフトが入っていないならばメール送信は出来ない。

noname#246547
noname#246547
回答No.4

>ちなみにメールソフトは入っていません。 >追加も出来ない状況です。 Linux上のPHPがメールを送信するときは、 サーバ内のsendmail等(qmailでもpostfixでもいいが)にメール送信を委譲するので、 メールソフト(上記のsendmail等のこと)が入っていないく、追加も出来ないならば、 メール送信そのものが不可能かと思われます。

参考URL:
http://php.s3.to/man/ref.mail.html
noname#246547
noname#246547
回答No.3

>しかしこれはsendmailを利用して >自サーバがメールを送信する設定ですよね。 relayhost=SMTPサーバ名を指定しているので、 sendmailがメールクライアントとなって、社内SMTPサーバを経由して メール送信する設定です。 自サーバが直接メールの配送先に送信するわけではありません。 >そうです。これをどうやるのかを聞いているのです。 Linuxに入っているメールソフト(qmailとか)の設定ファイルに、 relayhostのような設定項目はありませんか? PHPがメール送信->自サーバのメールソフトが社内SMTPへ必ず転送->社内SMTPが配送先へ転送 じゃだめなのですか?

adat555
質問者

補足

ご回答ありがとうございます。 >relayhost=SMTPサーバ名を指定しているので、sendmailがメールクライアントとなって、社内SMTPサーバを経由してメール送信する設定です。自サーバが直接メールの配送先に送信するわけではありません。 relayhostの設定ってpostfixの設定ですよね。 私がsendmailでメール送信する設定と言ったのは、 php.iniの設定の部分です。 ちなみにメールソフトは入っていません。 追加も出来ない状況です。

  • oi_goo
  • ベストアンサー率44% (20/45)
回答No.2

こんにちは. sendmailであればSMART HOSTとかで.

noname#246547
noname#246547
回答No.1

SMTPサーバには詳しくないので、参考程度として読んでください。 php.iniは endmail_path =sendmail -t -i Linuxにpostfixが入っているならば、 main.cfファイルに relayhost=SMTPサーバ名 とかではないでしょうか? リレー先SMTPサーバの指定を、Linux上で使用しているメールサーバの設定ファイルに指定するのがスジな感じです。 まったくはずしているかもしれませんが、 糸口が掴めれば幸いです。

adat555
質問者

補足

さっそくのご回答ありがとうございます。 >php.iniは endmail_path =sendmail -t -i 頭はsendmailですよね。 しかしこれはsendmailを利用して 自サーバがメールを送信する設定ですよね。 自社の既存のSMTPサーバを指定してリレーさせたいのです。 >リレー先SMTPサーバの指定を、Linux上で使用しているメールサーバの設定ファイルに指定するのがスジな感じです。 そうです。これをどうやるのかを聞いているのです。 また残念ながらpostfixは入っておりません。 インストールも立場上できません。

関連するQ&A