• 締切済み

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

  • sendmailでホットメールのSMTP送信

    今年からホットメールでのSMTP POP3での送受信が可能になったということで 「eWEB」さんのメールフォームを使用し自宅サーバから送信をしようと思っています。(下記のURLのフォームを使用) http://php.eweb-design.com/1301_mail.html 現在XAMPPで鯖を構築しているのですがホットメールのでSMTPを利用した送信ができません。 C:\xampp\sendmail\sendmail.iniを smtp_server=smtp.live.com smtp_port=587 auth_username=account@hotmail.com auth_password=password C:\xampp\apache\bin\php.iniを SMTP = smtp.live.com smtp_port = 587 のように書き換え「eWEB」さんのフォームを使用したのですが送信ができないようです。 sendmailを利用してホットメールのSMTP送信は何か足りないものがあるのでしょうか? 説明が長くなってしまいましたが、もしお分かりになる方がいましたら宜しくお願いいたします。

    • 締切済み
    • PHP
  • Net::SMTPでメールを送信したいが、サーバーに接続できない

    メールフォームからメールを送信することについて、 FENICSメール(富士通株式会社)でNet::SMTPを使用してメールを送信しようと考えています。 お問い合せでNet::SMTPでメールを送信する場合、smtp authの認証が必要だとわかりまして、下記のサイトを参考にして組みましたが、 メールが送信されませんでした。 http://d.hatena.ne.jp/yoshifumi1975/20060831/1156975960 色々と調べてみた結果、最初の $smtp = Net::SMTP->new('SMTPサーバ', Hello=>"SMTPサーバ"); の文で$smtpに値がなく、サーバーに接続できてませんでした。 参考サイト)http://tech.bayashi.net/pdmemo/sendmailbyperl.html でも、smtp情報はメーラーで問題なく設置できましたので、 サーバー情報、認証には間違いはないと考えられます。 Net::SMTPは使えているのにどうしてsmtpサーバーに接続できないのか わからずにいます。 初歩的で恐縮ですが、ご回答お待ちしております。 よろしくお願いします。

  • SMTPメールサーバを使ったメールの送信

    こんにちは 今現在製作しているアプリケーションでメールを送信するということさせようと計画中なんですが、その中でメールサーバを構築しなければならなくなってSMTPのメールサーバを構築しようと思い立ったんですが、サーバの構築に関してはまったくの無知で今どうすればいいのか、全くわかりません。 とりあえず今まとまっている案としてはLINUXで構築しようということだけです。 どなたかSMTPのサーバの構築方法についての詳しいサイトや情報があればご教授ください。 よろしくお願いします。

  • SMTP経由と経由しない方法でのメール送信について。

    まずは、こちらの環境を書いておきます。 WinXP Pen4-1.6MHz メモリ768MB HD-40GB ◆回線速度 下記のサイトの3M版で測定 http://member.nifty.ne.jp/oso/speedtest/ 回線1:ADSL-平均速度(ビット/秒)約2MB 回線2:光-平均速度(ビット/秒)約20MB ※ADSL回線と光回線の2つを導入しています。 メールマガジンを発行しているので、メールの送信数は3万通以上です。 メール送信ソフトの設定によっては、SMTP経由して送信する方法と、SMTPを経由しないで 直接相手のメールサーバにメールを送信するという方法があります。 SMTPを経由して送信しない場合、送信先のメールアドレスによっては届かない場合もあるのでしょうか? また届くメールと届かないメールの割合は、どれくらいでしょうか? 宛先のメールは、主に国内メールです。 後はヤフーやHotMail等、フリーメールです。 一般的には、同一回線を使用した場合、SMTP経由と経由しないとでは、どちらが配送速度が早いのでしょうか? SMTP経由の場合は、自分のパソコンでメールサーバを立てます。 ※メールサーバソフト-ArGoSoft mail server 皆様からの、御意見をお待ちしております。

  • 外部smtpサーバーを利用したメールの送信方法

    お世話になります。 環境ですが、Linux(CentOs3.6)/php4.2.9、を使っています。 phpで、外部smtpサーバーを利用したメールの送信方法を調べています。 実現したい事は、 メインサーバーから、外部smtpサーバーAと外部smtpサーバーBを利用してメールを送信させたいと思っています。 方法をご存知の方がいらっしゃいましたらご教授下さい。

    • ベストアンサー
    • PHP
  • SMTPサーバーにてメールの送信

    PHPでメールを送れないかと調べたところさまざまな方法があるようですが、XAMPPにMercuryMailがついていたのでそれを使ってやってみることにしました。 php.iniでは SMTP = localhost smtp_port = 25 の設定でlocalhostにメールを送るとMercuryMailにメールが届くんですが、そこからいざ外に送ろうとなるとうまく遅れないようです。 調べてみたらISPのほうで25番ポートブロックなるものでブロックされるとあることなのでかわりに587ポートで送ることにしました。 しかし、それでもうまく届けることができませんでした。 そこで、リレーをさせて送ろうとyahooのSMTPサーバーとBIGLOBEのSMTPサーバー、2つでためしたのですがやはりどちらも送ることができませんでした。 双方ともちゃんとSMTP_AUTHをつかってIDとPWを入れていますが送ることができませんでした。 環境はXAMPP1.6.6aをつかっており、MercuryMailのバージョンは4.5.2です。 OSはWindows XP Home Edittion ISPはBIGLOBE フレッツ光回線です。 この環境でSMTPサーバーをたてることはできないのでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • LinuxのSMTPサーバ

    これまでWin2k+OutlookExpress6+Radish(SMTPサーバ)というデスクトップPC環境からgooのフリーメールアドレスを使って送信し、受信したら自前のメールアドレスに新着通知が転送され、そこではじめてgooにログインする手法をとってきました。OutlookExpressでの送信に慣れているし、送信の度にログインするのが煩雑だからです。 今後はデスクトップPCをVineLinux4.1+Thunderbird2(又はSylpheed)に完全移行させ、同様の事を行いたいのですが、この場合にRadishに代わるSMTPサーバを、さらに言えばこの場合の当該SMTPサーバの設定方法(ポイントだけでも十分有難いです。)をお教え願います。 なお、gooのフリーメールアドレスではない新たなアドレスを公開・送受信する気はなく、また、Linuxは現在試行中で、本格的に利用した事がありません。

  • php メールフォーム SMTP メールサーバー

     環境は、 windows7 32bit・ XAMPP version1.8.1(Apache MySQL) です。. phpを、 「PHP プログラミングの教科書」 にて、勉強中のものですが、『3-2 メールフォーム』のメールサーバーの設定で、つまってしまいました。  外部メールサーバーを、SMTPに指定して、メールを受け取るプログラムです。   外部サーバーに、 Yahoo(またはGmail ) を利用しようとして、つまっています。 「PHP プログラミングの教科書」の説明では、PHP設定ファイル(php.ini)のメール設定で、 デフォルトで、 --------------------------- SMTP = localhost smtp_port = 25 --------------------------- の部分を、 ↓ --------------------------- SMTP = xxxxx.xxxxx.com(メールサーバー) smtp_port = 25 username = xxxxx password = xxxxx --------------------------- と、変更・追加すれば、よいとのことで、 SMTP = smtp.mail.yahoo.co.jp smtp_port = 25 username = yahooのID password = yahooのパスワード と設定しました。 phpのファイルにアクセスすると、文字の入力から、送信までのページ進行には、問題ないのですが、メールが受信(または送信)されません。メール送信は、mb_send_mail関数を使用してます。ヤフーデリバーというものに、登録して、ヤフーのサーバーの情報などを確認しました。 メールソフト(outlook,thunderbirdなど)は、必要なのでしょうか?書籍にはなんの記述もないので、できるのかとおもってるのですが、ネットで調べると、Gmailと、メールソフトと、PEAR:Mailで、メールを送信する。という記述が多いのですが、基本的なことを把握してないと思いますので、ご指摘いただけたらと思います。よろしくお願いいたします。ヤフー 以下、phpのコードです。 <?php //サニタイズ関数の定義 function hsc($a){ return htmlspecialchars($a, ENT_QUOTES ,"UTF-8"); } $uname = hsc($_SESSION["uname"]); $email =hsc($_SESSION["email"]); $message =hsc($_SESSION["message"]); // メール本文の組み立て $to = "yahooの自分のアドレス"; $title ="【メールフォームより】"; $ext_header ="From : {$email}"; //本文を組み立てるヒヤドキュメント $body = <<<EOM --------------------------------------------------------------------- 【webサイトからのメール】 お名前:{$uname} メールアドレス:{$email} メッセージ:{$message} --------------------------------------------------------------------- EOM; //メール送信の実行 $rc = mb_send_mail($to, $title, $body, $ext_header); if(!$rc){ exit; }else{ $_SESSION = NULL; } ?> 試したことは、 ・ポート番号を、587に変更する。 ・php.iniのSMTPなどの前に、「;」があったので、それを削除した。

    • ベストアンサー
    • PHP
  • なぜsmtpを開放していないのに、メールを送れるの

    ネットワーク超初心者です。 Webサーバのsendmail機能を使って、Webフォームからsubmitした情報を、メールサーバを経由して特定のメルアドに送信するという設定をしました。そして、Webフォームから試したところ、うまくいきました。 一方、Webサーバのコマンドプロンプトで、netstat -aコマンドを実行したところ、smtp(25)は表示されませんでした。 で、まこと初歩的な疑問だと思うのですが、なぜsmtpが開放していないのに、Webサーバ経由でメールサーバにメールが送られたのでしょうか。

  • PHPでメールの送信ができない

    xampp1.8.0環境から PHPのmb_send_mailでメールの送信をしようとしています。 php.ini SMTP = smtp.xxx.ne.jp (プロバイダから指定されてるもの) smtp_port = 25 xampp1.7.7くらいの環境のときは↑の設定のみで送信できたのですが 新しいバージョンに変えてから送れなくなりました。 古いバージョンのphp.iniと差し替えると送信可能になります。 上記の2行以外でメールの設定に関わる部分はありますでしょうか?

    • 締切済み
    • PHP