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

mailコマンドでローカル(LAN)以外のメールアカウントへメール送信は可能でしょうか?

cvsのcommitメールを飛ばそうと思うのですが、
うまくいきません。
ローカルにメールサーバをたてたくないので
直に外部のMTAに接続できれば と思います。
お願いいたします。

A 回答 (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のバージョンともに不明ですのでなんですが、詳しくは以下のドキュメントを参考に...

参考URL:http://docs.sun.com/db/doc/817-1177
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
コマンドプロンプトより無事メールを送る事ができました。

なぜかcvsからは送れませんが、
もうすこしがんばってみます。

お礼日時:2004/10/17 20:07

>でも、#6で書きましたが、solarisだとsubmit.cfは


>編集不可?みたいです。


「編集不可?」の意味が理解できませんが、
ちなみに、Linux ではsubmit.mcを修正したのち更新します。
sendmailデーモンを起動させる必要はありません。

FEATURE(`msp', `[127.0.0.1]', `MSA')dnl


# make submit.cf
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
$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をつける方法を勉強します。

お礼日時:2004/10/17 19:46

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の設定変更でいけそうな気がします。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ログにエラーはなくなりました。
あとはsubmit.cfですね。
docs.sunに変更はできない と記載があったのが
大変気になります。
http://docs.sun.com/db/doc/816-3965/6ma7896fr?l= …

 submit.cfを作成する方法を少し勉強したいと思います。
solriasにはsubmit.mcは入っていなかったので
直接submit.cfを編集しなければいけないのでしょうか。
m4(1)は/usr/ccs/bin/m4に入っていました。
どこからかsubmit.mcを持ってきて編集 m4でcf変換
という手順であってますでしょうか?

お礼日時:2004/10/17 18:51

>ログを見るとローカルのsendmialをさしていますね。


>外部は無理ですか。。。非常に残念です。


Solarisではなく、Linuxのmailコマンドですが、外部のSMTPサーバを指定して
送信可能です。
ローカルでsendmailを起動させる必要はありません。

一度sendmail.cf / submit.cf あたりを見直してみてはいかがでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
この場合sendmail.cfは編集する必要がなく
submit.cfだけでいけそうな気がします。

ソースが怪しいですが;
http://www.freia.jp/taka/wiki/SendMail

でも、#6で書きましたが、solarisだとsubmit.cfは
編集不可?みたいです。
sendmial.cfを編集したらsendmailが起動しなければいけない。。。なんてことはないですよね?

お礼日時:2004/10/17 18:54

 そのうまくいかないときのエラーメッセージがないとどこで失敗しているのかが想像がつきにくいですね。

通常、この手のエラーメッセージはローカルの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はたてていませんので
設定はないです。

補足日時:2004/10/17 13:47
    • good
    • 0

mailコマンドというのは、恐らくはいわゆる/bin/mailの事を指していると思いますが、このユーティリティは、ローカルでsendmailが稼働していることを暗黙に期待しているソフトであるため、そもそも外部のSMTPサーバを直接指定することが不可能です。



そのような事をする場合は、SMTPサーバを指定できる別のユーティリティを使用することになりますが、一般にUNIX上で動く多くのメール関連のユーティリティは、ローカルでsendmailが稼働していることを暗黙に期待しているため、質問者さんのような要件で困るケースが多いです。
私も以前に同じ事をしようとしてはまりました。
そのときには、そのようなことがあっさりとできるソフトが見つからなかったため、rubyを使って自前で作成してしまいました。

ご期待に添えず、申し訳ありませんが、事情が許すのであれば、メールサーバは動かしておいた方が、何かと悩まずにすむかと思います。

この回答への補足

回答ありがとうございます。
mailは/bin/mailをさしています。おっしゃる通りです。
ログを見るとローカルのsendmialをさしていますね。
外部は無理ですか。。。非常に残念です。

rubyで自作ですか。
調べてみたところ、自作している方が多いように思えますね。
自作の方を試してみようかな、と思います。

補足日時:2004/10/17 13:37
    • good
    • 0

メールの送信だけに関して言えば、


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が解決してくれるものだと思っているのですが・・・?

補足日時:2004/10/17 13:35
    • good
    • 0

こんばんは


リレー先のメールサーバが送信元のドメインをリレー許可していますか?
あなたのサーバはそのサーバに転送する設定が完了していますか?

取り敢えず試験として、telnetでそのサーバにPort25でログインし以下のコマンドを試してください。

helo サーバ名
mail from:送信元アドレス
rcpt to:送信先アドレス
data
.
test
.
quit

この回答への補足

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

しかしながら、外部サービスのメールサービスの為
telnetはできないんです。

え~セキュリティと管理の問題よりメールは外部に委託しています。

ローカルにメールサーバをたてれたらその設定を色々やるのですが、できない状態です。
でもリレーは許可しているように思えます。

以前はローカルにMTA(送信のみ)をたてていた場合は
うまくいっていました。

言葉足らずで申し訳ございません。

補足日時:2004/10/17 13:29
    • good
    • 0

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