アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

Linuxサーバよりメールを送信したいのですが、同じ社内に設置している別のSMTPサーバを使って送信したいと考えています。
Windowsサーバであれば"php.ini"の"SMTP"に利用したいSMTPサーバを指定してやればよいかと思いますが、Linuxの場合はどうすれば良いでしょうか?

実際にやりたいこととしては、Linuxサーバより公開しているフォームメールのページにアクセスして情報を送信した際に、社内のSMTPサーバを経由してメールが管理者に送信されるというものです。

その他、必要な情報等ありましたら、お申し付けください。
以上、宜しくお願い致します。

A 回答 (7件)

社内のSMTPを経由したいだけであれば"/etc/resolv.conf"に社内のDNSサーバーが指定されていれば動作するはずです。


Linux等のUNIX環境ではシステム本体がメールを使っているのでWindowsの様にsmtpサーバを入れる必要はないです。
(設定が必要な場合もありますが)

あとはsendmailコマンドが判断してくれるかとおもいます。

ちなみにメールの送信先をテスト等で一箇所に限定したい場合は、
sendmail_path = sendmail admin@hoge.com
とかにしておくと誤って外部に送信されることを防ぐことが出来ます。
    • good
    • 1

ANo.4の補足2



メールソフトを使用せずに、PHPからメールを送信したいのであれば、
socketを使用して、直接SMTPサーバに接続し、メールデータを送信してみては?

注:メールのデータはJISに変換するように。

参考URL:http://php.s3.to/man/ref.sockets.html
    • good
    • 1

ANo.4の補足



LinuxでのPHPがメール送信するときは、sendmail等とpipeを使用しプロセス間通信を利用して、sendmail等にメールデータを渡し、メールを送信している。
よって、php.iniにsendmail等のpathが必要になってくる

windowsでのPHPがメール送信するときは、socketを使用しTCP/IP通信でSMTPサーバにメールデータを渡し、メールを送信している。
よって、php.iniにSMTPサーバ情報を登録する必要がある。

phpのソースを見たことが無いので保証しませんが、
php.iniの設定方法の違いを見る限り、送信手順に上記のような違いがあると思います。

よって、Linuxではメールソフトが入っていないならばメール送信は出来ない。
    • good
    • 1

>ちなみにメールソフトは入っていません。


>追加も出来ない状況です。

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

参考URL:http://php.s3.to/man/ref.mail.html
    • good
    • 0

>しかしこれはsendmailを利用して


>自サーバがメールを送信する設定ですよね。
relayhost=SMTPサーバ名を指定しているので、
sendmailがメールクライアントとなって、社内SMTPサーバを経由して
メール送信する設定です。
自サーバが直接メールの配送先に送信するわけではありません。

>そうです。これをどうやるのかを聞いているのです。
Linuxに入っているメールソフト(qmailとか)の設定ファイルに、
relayhostのような設定項目はありませんか?

PHPがメール送信->自サーバのメールソフトが社内SMTPへ必ず転送->社内SMTPが配送先へ転送
じゃだめなのですか?

この回答への補足

ご回答ありがとうございます。

>relayhost=SMTPサーバ名を指定しているので、sendmailがメールクライアントとなって、社内SMTPサーバを経由してメール送信する設定です。自サーバが直接メールの配送先に送信するわけではありません。

relayhostの設定ってpostfixの設定ですよね。
私がsendmailでメール送信する設定と言ったのは、
php.iniの設定の部分です。

ちなみにメールソフトは入っていません。
追加も出来ない状況です。

補足日時:2007/04/20 14:09
    • good
    • 0

こんにちは.



sendmailであればSMART HOSTとかで.
    • good
    • 1

SMTPサーバには詳しくないので、参考程度として読んでください。



php.iniは
endmail_path =sendmail -t -i

Linuxにpostfixが入っているならば、
main.cfファイルに
relayhost=SMTPサーバ名

とかではないでしょうか?

リレー先SMTPサーバの指定を、Linux上で使用しているメールサーバの設定ファイルに指定するのがスジな感じです。

まったくはずしているかもしれませんが、
糸口が掴めれば幸いです。

この回答への補足

さっそくのご回答ありがとうございます。

>php.iniは
endmail_path =sendmail -t -i

頭はsendmailですよね。
しかしこれはsendmailを利用して
自サーバがメールを送信する設定ですよね。
自社の既存のSMTPサーバを指定してリレーさせたいのです。

>リレー先SMTPサーバの指定を、Linux上で使用しているメールサーバの設定ファイルに指定するのがスジな感じです。

そうです。これをどうやるのかを聞いているのです。

また残念ながらpostfixは入っておりません。
インストールも立場上できません。

補足日時:2007/04/18 14:00
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!