- ベストアンサー
unixのmailコマンドにてメール送信
mailコマンドでローカル(LAN)以外のメールアカウントへメール送信は可能でしょうか? cvsのcommitメールを飛ばそうと思うのですが、 うまくいきません。 ローカルにメールサーバをたてたくないので 直に外部のMTAに接続できれば と思います。 お願いいたします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
編集不可ではなくて、「直接sendmail.cfを編集することは推奨しない」ではないでしょうか? sendmail.cfの編集の方法は、通常2種類あって、CFとcfがあります。古くはWIDE CFというものを使ってsendmail.defを編集し、これからsendmail.cfを生成していましたが、現在はsendmail.mcファイルを編集して、m4マクロを使ってsendmail.cfを生成します。Sunが言っているのはこういうことです。 ただ、MTAとのことですので、デーモンモードで使用されるsendmail.cfでなくMTAで使用されるsubmit.cfが対象となるでしょう。 Solarisのバージョン、Sendmailのバージョンともに不明ですのでなんですが、詳しくは以下のドキュメントを参考に...
その他の回答 (7)
- xjd
- ベストアンサー率63% (1021/1612)
>でも、#6で書きましたが、solarisだとsubmit.cfは >編集不可?みたいです。 「編集不可?」の意味が理解できませんが、 ちなみに、Linux ではsubmit.mcを修正したのち更新します。 sendmailデーモンを起動させる必要はありません。 FEATURE(`msp', `[127.0.0.1]', `MSA')dnl # make submit.cf
お礼
回答ありがとうございます。 $make がずっと不明でしたが、srcをdlしてきて sendmail/cf/cf で make ですね。 これを理解できていませんでした。 目的であるメール送信は無事できました!! $cat /etc/mail/submit.mc divert(-1) # # Copyright (c) 1998, 1999, 2001 Sendmail, Inc. and its suppliers. # All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # # # # This is a generic configuration file for SunOS 5.x (a.k.a. Solaris 2.x # and Solaris 7 through the present version). # # It has support for local and SMTP mail only. If you want to # customize it, copy it to a name appropriate for your environment # and do the modifications there. # divert(0)dnl VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $') OSTYPE(solaris2)dnl DOMAIN(generic)dnl FEATURE(`masquerade_envelope')dnl FEATURE(`use_ct_file')dnl MASQUERADE_AS(`hoge')dnl MASQUERADE_DOMAIN(`localhost')dnl EXPOSED_USER(`root')dnl define(`confPRIVACY_FLAGS', `goaway')dnl define(`SMART_HOST', `hoge.foo.hello.com')dnl define(`ALIAS_FILE', `/etc/mail/aliases')dnl MAILER(local)dnl MAILER(smtp)dnl 差出し人の名前やsubjectをつける方法を勉強します。
Oct 15 19:34:22 hoge sendmail[2358]: [ID 702911 mail.alert] unable to qualify my own domain name (hoge) -- using short name Oct 15 19:55:05 hoge sendmail[2395]: [ID 702911 mail.crit] My unqualified host name (hoge) unknown; sleeping for retry ログに上がっているエラーメッセージを一つ一つ解決していきましょう。 まず、unable to qualify my own domain name は $cat /etc/hosts 192.168.255.xxx hoge loghost なので、当然です。Sendmailは自分のドメイン名を/etc/hostsファイルから引っ張ってきますので、 192.168.255.xxx hoge hoge.domainname loghost と、hostname.domainname形式の別名エントリが必要です。 sendmailをMTAとして使わずMUA/MSAとして使うのであれば、あとは#5さんがおっしゃるようにsendmail.cfの設定変更でいけそうな気がします。
お礼
回答ありがとうございます。 ログにエラーはなくなりました。 あとはsubmit.cfですね。 docs.sunに変更はできない と記載があったのが 大変気になります。 http://docs.sun.com/db/doc/816-3965/6ma7896fr?l=ja&a=view submit.cfを作成する方法を少し勉強したいと思います。 solriasにはsubmit.mcは入っていなかったので 直接submit.cfを編集しなければいけないのでしょうか。 m4(1)は/usr/ccs/bin/m4に入っていました。 どこからかsubmit.mcを持ってきて編集 m4でcf変換 という手順であってますでしょうか?
- xjd
- ベストアンサー率63% (1021/1612)
>ログを見るとローカルのsendmialをさしていますね。 >外部は無理ですか。。。非常に残念です。 Solarisではなく、Linuxのmailコマンドですが、外部のSMTPサーバを指定して 送信可能です。 ローカルでsendmailを起動させる必要はありません。 一度sendmail.cf / submit.cf あたりを見直してみてはいかがでしょう?
お礼
回答ありがとうございます。 この場合sendmail.cfは編集する必要がなく submit.cfだけでいけそうな気がします。 ソースが怪しいですが; http://www.freia.jp/taka/wiki/SendMail でも、#6で書きましたが、solarisだとsubmit.cfは 編集不可?みたいです。 sendmial.cfを編集したらsendmailが起動しなければいけない。。。なんてことはないですよね?
そのうまくいかないときのエラーメッセージがないとどこで失敗しているのかが想像がつきにくいですね。通常、この手のエラーメッセージはローカルのrootか、そのメールを飛ばしているアプリケーションのuidのユーザーに返ってきていると思いますので、それを確認してみてください。 cvsについてはわからないのですが、それから外部メールアドレスを指定してメールを飛ばそうとしているのですよね? 一般的に以下のような条件が前提条件として必要かと思います。 ・/etc/hostsファイルに自分のIP、ホスト名があるはずですが、ドメイン名を含んだエントリが存在すること。 ex)192.168.0.2 myhostname myhostname.mydomainname ・/etc/hostsファイルにSMTPサーバのIPアドレスがmailhostとしてエントリされていること。 ex)1.1.1.25 mailservername mailhost ・SMTPサーバの転送ポリシーを確認し、それに見合った設定になっていること。 たとえば、SMTPサーバがドメイン名を確認しているなら、メール送信者がドメイン名を含んでいることが必要です。この場合、sendmail.cfの設定を変更します。 いずれにせよ、そのエラーメッセージがないとなんともいえませんね。
補足
回答ありがとうございます。 /etc/hostsに自サーバの情報は書いてましたが mailhostの記述はしていなかったので追加しました。 $cat /etc/hosts # # Internet host table # 127.0.0.1 localhost 192.168.255.xxx hoge loghost xxx.202.xxx.xxx hoge.foo.hello.ne.jp mailhost $mail -s test foo@hoge.foo.hello.ne.jp これでもうまくいきませんでした。 内部にsendmail等のMTAはたてていませんので 設定はないです。
- you-m
- ベストアンサー率58% (190/327)
mailコマンドというのは、恐らくはいわゆる/bin/mailの事を指していると思いますが、このユーティリティは、ローカルでsendmailが稼働していることを暗黙に期待しているソフトであるため、そもそも外部のSMTPサーバを直接指定することが不可能です。 そのような事をする場合は、SMTPサーバを指定できる別のユーティリティを使用することになりますが、一般にUNIX上で動く多くのメール関連のユーティリティは、ローカルでsendmailが稼働していることを暗黙に期待しているため、質問者さんのような要件で困るケースが多いです。 私も以前に同じ事をしようとしてはまりました。 そのときには、そのようなことがあっさりとできるソフトが見つからなかったため、rubyを使って自前で作成してしまいました。 ご期待に添えず、申し訳ありませんが、事情が許すのであれば、メールサーバは動かしておいた方が、何かと悩まずにすむかと思います。
補足
回答ありがとうございます。 mailは/bin/mailをさしています。おっしゃる通りです。 ログを見るとローカルのsendmialをさしていますね。 外部は無理ですか。。。非常に残念です。 rubyで自作ですか。 調べてみたところ、自作している方が多いように思えますね。 自作の方を試してみようかな、と思います。
- cdboxcdboxcdbox
- ベストアンサー率32% (19/59)
メールの送信だけに関して言えば、 mail メールアカウント で、送信できると思います。 ただ、sylpheed、mozilla、thunder birdなどのメールソフトを使うほうが便利だと思いますが。 あと「うまくいきません。」のところのエラーログを見せてもらえば、もっと詳しい人から回答があるかも知れないと思いますので、載せてみればどうでしょうか。 私はCVSのことは一切知らないので、頓珍漢なことを書いていたらすいません。
補足
回答ありがとうございます。 mailだけだとできないんですよ・・・ メールソフトはいれるつもりはないです。 ログは多分以下のものだと思います $cat /var/log/message Oct 15 19:34:22 hoge sendmail[2358]: [ID 702911 mail.alert] unable to qualify my own domain name (hoge) -- using short name Oct 15 19:55:05 hoge sendmail[2395]: [ID 702911 mail.crit] My unqualified host name (hoge) unknown; sleeping for retry hoge がhostnameです。 これってDNSが解決してくれるものだと思っているのですが・・・?
- kuma-ku
- ベストアンサー率54% (1558/2845)
こんばんは リレー先のメールサーバが送信元のドメインをリレー許可していますか? あなたのサーバはそのサーバに転送する設定が完了していますか? 取り敢えず試験として、telnetでそのサーバにPort25でログインし以下のコマンドを試してください。 helo サーバ名 mail from:送信元アドレス rcpt to:送信先アドレス data . test . quit
補足
回答ありがとうございます。 しかしながら、外部サービスのメールサービスの為 telnetはできないんです。 え~セキュリティと管理の問題よりメールは外部に委託しています。 ローカルにメールサーバをたてれたらその設定を色々やるのですが、できない状態です。 でもリレーは許可しているように思えます。 以前はローカルにMTA(送信のみ)をたてていた場合は うまくいっていました。 言葉足らずで申し訳ございません。
お礼
回答ありがとうございます。 コマンドプロンプトより無事メールを送る事ができました。 なぜかcvsからは送れませんが、 もうすこしがんばってみます。