- ベストアンサー
「mail」コマンドと「sendmail」コマンドについてのくだらない質問です
よろしくお願いします。 電子メールの送受信を行う「mail」コマンドというのがあるのですが、そのほかに「sendmail」というコマンドがあるようです。 この「sendmail」もメールの送受信に使うコマンドでしょうか。 ちなみに、うちの自宅サーバでは「mail」コマンドは使えますが「sendmail」コマンドが使えません。 $ /usr/lib/sendmail というようにフルパスで指定してもダメでした。 5分経っても10分経っても次のプロンプトが表示されずに反応が無くなってしまいますので「Ctrl」+「c」キーで強制的にプロンプトを表示させるしかありません。 ひょっとして最近コマンド名が変わったとか、そういうことでしょうか。 ディストリビューションはRed Hat Linux8.0で SMTPサーバはsendmail-8.12.5-7.i386.rpmとかいうものです。 どなたか教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
vオプションと宛て先を指定して起動し、メール本文、「.」(ピリオド)で完了です。 マシンのFQDN:hogehoge.somedomain.net ユーザ名 :honyarara だとするとこうなります。 ------------------------------------------- $ /usr/lib/sendmail -v honyarara@hogehoge.somedomain.net This is test mail <-- メール本文 . <-- ピリオドのみ ------------------------------------------- ひょっとしたら root権限が必要かも。
その他の回答 (4)
- xjd
- ベストアンサー率63% (1021/1612)
>$ /usr/sbin/sendmailと入力してみたのですが、やはりコマンドライン画面が固まり応答が無くなってしまいます。 これは、#4 さんが解説されているとおり、sendmailがコマンドから起動されて入力待ちなんですよ。 >/usr/lib/sendmailも >/usr/sbin/sendmailも含まれていないのが少し疑問です。 /usr/sbin/sendmailを実行して固まってる(入力待ち)のだから見つかってるはずなんですけど???? パッケージ版sendmailなら # rpm -ql sendmail と実行したら、sendmailパッケージのファイルがどこにインストールされているか表示されますので試してみてください。 >引き続きご質問なのですが「sendmail」コマンドを実行するためには、どこかで詳細な設定が必要なのですか。 どこでどんな環境でどんな動作を期待するかによります。 CGIでメールを扱う勉強の前にsendmail(DNS又は/etc/hosts等の名前解決含む)の設定を勉強されるのが先ですね。 とりあえず、ローカルのパソコンに複数のユーザを作って、メールのやり取りが出来る様な環境を作ってみるかだけど、 時間がかかりそう(はまりそう)なので初めから学校の環境でテスト・実行する方がよいかも。 質問からするとメールサーバの構築よりCGIの勉強がメインなんでしょ? どうしても自宅PCでメールサーバを立てたいなら、新規質問など立てた方がよろしいかと。
お礼
ご返信ありがとうございます。 どうもすいません、おっしゃるとおりプロンプトが表示されないその画面こそがメール本文の入力待ち画面でした。 こんな事にも気づかない奴がパソコン歴5年とは聞いてあきれますね。 また/usr/lib/sendmailと /usr/sbin/sendmailにつきましては「-type f」オプションをはずしたらヒットするようになりました。 「-type f」は何か特別なファイルだけを探すオプションでしょうか。 さて、これで晴れてメール送信機能が使えるようになったわけですが、やはり事はそううまくも運びません。 メールサーバが適切に設定されていないせいか結局メール送信は成功しませんでした。 やはり、おっしゃるとおりsendmail(DNS又は/etc/hosts等の名前解決含む)の設定を最初からやり直すことにします。 しかし、これについても、しばらくしたら、また質問に来る可能性が高いですが、よろしくお願いします。 「質問からするとメールサーバの構築よりCGIの勉強がメインなんでしょ? 」←やっぱ分かります? そのとおりです。 当初はCGIの授業で他の学生たちに差を付ける目的で、自宅でCGIを勉強しようと思っていたのですが契約しているプロバイダがtelnet接続を許可していないため勉強できないことを知りました。 その後telnet接続を許可しているフリーサーバなるものを知り、これをレンタルしたのですが、いざ接続してみると使用可能なコマンドが、ごく限られていて、とてもこの環境では自作CGIなど不可能だということを知りました。 そして、その後知ったのがPCUNIXなるフリーOS、Linuxの存在です。 しかし、フリーとはいえFTPで入手するには恐ろしいほどの時間がかかりますので結局CD付きの本を買うことになりました。 おまけにアーキテクチャ代等も含めますと新しくWindowsXPプロフェッショナルが買えたなー、とも思いましたが、それはさておき自宅Linuxサーバを構築する事になりました。 これには思ったよりも手こずりサーバ導入完了の現在に至るまで、およそ2か月もの期間を浪費してしまいました(しかも我がサーバは未だに様々な不具合を抱えている)。 というわけで当初は他の学生に差を付けるために始めた、このプロジェクトは達成されず、それどころか逆に差を付けられて私は置いてきぼりにされてしまいました。 もう火の車でっす(汗)。 しかし、その反面LinuxやTCP/IPについての基礎知識を得ることが出来ましたのでプラス思考に考え、今から、がんばってみんなを追いかけることにします。 お世話になった技術系回答者の皆様、今後もご回答よろしくお願いします。
- xjd
- ベストアンサー率63% (1021/1612)
(補足) アクセスカウンタのCGIは動くようになりましたか? こんどはフォームで入力した内容をCGI内でsendmailに渡して送信してみましょう。
お礼
xjdさん、いつもご回答いただきありがとうございます。 アクセスカウンタの問題につきましては無事解決いたしました。 何が原因だったのかといいますと、お恥ずかしいのですが、そのスクリプトの置いてあるディレクトリのパーミッション設定が「775」になっていたためです。 これを「755」と書き変えたところ問題なく動作するようになりました。 どうもSSHのコマンドラインから新規にディレクトリを作成すると「775」と設定されたディレクトリが生成されてしまうようです。 「FFFTP」で新規にディレクトリを作成すれば「755」なので今は「FFFTP」で作成しています。 「こんどはフォームで入力した内容をCGI内でsendmailに渡して送信してみましょう。」←そうです、まさに今、僕がやろうとしていたことです。 しかし「sendmail」コマンドが実行できないので疑問に思い、ここに参上したわけです。 引き続きご質問なのですが「sendmail」コマンドを実行するためには、どこかで詳細な設定が必要なのですか。 よろしくお願いします。
- xjd
- ベストアンサー率63% (1021/1612)
/usr/sbin/sendmailでしょう。 fint / -type f -name sendmail とか実行して探せばよいです。 sendmailはコマンドとしても使えますし、デーモンとしても使えます。
お礼
ご回答ありがとうございます。 $ /usr/sbin/sendmailと入力してみたのですが、やはりコマンドライン画面が固まり応答が無くなってしまいます。 「find」コマンドを実行しましたら次のパスがヒットしました。 /var/lock/subsys/sendmail /etc/sysconfig/sendmail /etc/rc.d/init.d/sendmail /etc/log.d/scripts/services/sendmail この中に /usr/lib/sendmailも /usr/sbin/sendmailも含まれていないのが少し疑問です。 上記4つのコマンドは少なからず危険な香りが漂っているのでまだ実行はしていません。 実行しても差し支えないものでしょうか。 また以前のようにデーモンが起動していないだけという間抜けな結末を懸念して # /etc/rc.d/init.d/sendmail start # chkconfig sendmail on というように上記のコマンドを実行しましたが、やはり反応がありません。
- asuca
- ベストアンサー率47% (11786/24626)
参考URLをみるとわかりやすいのですが。sendmailはメールを送受信するためのソフトであってメールを作成するソフトではないということです。
お礼
ご返信ありがとうございます。 ということは「sendmail」というコマンドは対話形式で送信先や本文の内容を作成して「sendmail」というソフトに作成したデータを渡す役割を担っていると解釈すればいいのでしょうか。 それに対して「mail」コマンドは作成から送信までを手がける万能コマンドということですね。 ところで、この「sendmail」というコマンドが僕の環境では実行できないのですが、このコマンドを利用するためには何か詳細な設定が必要なのでしょうか。
お礼
ご回答ありがとうございます。 実は何の問題もありませんでした。 次のプロンプトが表示されないのはただ単に文字入力待ち状態になっているためだったのです。 この状態で何の問題もなく文字を入力して最後にピリオドで送信可能だったようです。 またも、早とちりの質問をしてしまって、すいませんでした。 ただし、この後無事に送信できたかといいますと話は別です。 どうもメールサーバがうまく機能していないようで。 どうやらMTAとDNSの設定をもう一度最初からやり直すことになりそうです。 しばらくしたら、またサーバ設定について質問に来るかもしれませんが、その時はどうぞよろしくお願いします。 関係ないですが実は7日後にCCNA受験ですので今日からしばらく「Linux」&「CGI」を離れます。 次回、質問に来るのは7日後以降ですね。 それまでにLinuxのコマンドを忘れなきゃいいが・・・(汗)