• ベストアンサー

sendmail を使いたい

いつもお世話になっております。 非常に初心者な質問で申し訳ないのですが、ホームページ上から、メールを送るメールフォームを作ったのですが、メールが送信されません。メールを送るだけなので難しい設定は不要だと思っていたのですが、如何せんメールを送信してくれないのです。 ほぼデフォルトなのですが、 /etc/rc.conf sendmail_enable="YES" ぐらいです。やはりこれだけでは全然足りないでしょうか?ただいま sendmail を勉強中ですが、とりあえずメールを送れるようになりたいので、よろしくお願いします。 ちなみに mail コマンドでもメールが送れません。 環境は FreeBSD5.0 です。

  • BSD系OS
  • 回答数7
  • ありがとう数19

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.6

>どうやったらプロンプトに戻れるでしょうか? CTRL+C、とかCTRL+Q、などで強制終了して下さい。(すみません。今環境がないので思い出せません。) そのログを見る限りでは、相手側がメールを受け取ってくれなくて、あなたのメールサーバのキュー に保存されています。そして何度もキューにたまっている未送信ファイルを再送信しようとしています。

Lorenzini
質問者

お礼

ただいま、phpinfo を見てみましたところ、sendmail のパスが、 /usr/sbin/sendmail -t -i になっておりました。mailer.conf によると /usr/libexec/sendmail/sendmail のようなので、php.ini でこのように書き直し、apachectl graceful してみましたが、やはりメールは送信されません。インターナルサーバーエラーでメールを送信できませんと表示されます。 どうもDNSが引けていないことが原因のようです。

Lorenzini
質問者

補足

ありがとうございます。Ctrl+C で復帰できました。 今家に帰ってきて、そのまま表示させていたログを見たところ、最後の行が Jul 1 00:00:00 www newsyslog[5983]: logfile turned over になっていました。相当ログがたまって、このファイルはアーカイブになってしまったのかもしれません。 一応、届くはずのメールアドレスにも送っているのですが、そのアドレスにも届かず、何度も送信を繰り返しているようです。 ルーターの WAN 側は、80番ポートしか開けていませんが、クライアントマシン(Windows)からは、メールが送信できるので、ルーターの設定ではなさそうだし。 もう少しいろいろ見てみます。 ありがとうございました。

その他の回答 (6)

回答No.7

うーん、大分はまってますね ^^;)。 qmail にした方が楽かもしれませんよ。MTA をはじめて触るのであれば sendmail はかなり辛いんじゃないですかね。 cd /usr/ports/mail/qmail/ make install make enable-qmail だけで基本設定が行われますし。  ま、それはさておき。以下の順番で確認していった方がよろしいかと思いますよ。  1. ローカルアカウント宛にメール送信が正しく実施できるか  2. 自分の契約している ISP やフリーメール宛にメール送信が正しく実施できるか  1. がクリアできないのに 2. をやっても意味ないです。大変だと思いますが、頑張ってください。 p.s. ちなみに 5.1-RELEASE が出てますので、そっちの方が何かと良ろしいのではないかと思います。

Lorenzini
質問者

お礼

メールフォームからのメールの送信は、MTAを使わなくても、PHPでもやってみたのですが、それでもだめだったので、MTAには関係ない、もっと根本的なところで躓いているようです。5.1も何度かインストールしたのですが、サイト完成までいかず、MySQLがらみでエラーが絶えず、5.0にしました。4.8も5.1と同じエラーで断念しました。 ご親切にアドバイスありがとうございました。

Lorenzini
質問者

補足

ありがとうございます ローカル宛にメールを送っても届かないのです。数日後、エラーメールは戻ってきますが。どうも、MTAの問題ではなく、名前解決とか、ネームサーバの設定のような気がしています。ホスト名が、localhost ではなく、ドメイン名つきのホスト名だからでしょうか。ただ、帰ってくるエラーメールで自分のメールアドレスの @ 以下は localhost になっているのです。 もっとも疑わしいミスとして、/etc/resolv.conf で、nameserver が、ルーターのIPアドレスになっているのですが、私のルーターには nameserver の機能はないのです。一応プロバイダの nameserver のアドレスは登録はしているのですが。 大体これでインターネットにつながるのでこのままにしておいたのですが、やはりここには、nameserver のアドレスを入れるべきか・・・今入れて再起動してみましたが変わりませんでした。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.5

メールの動作を確認する時は、mailコマンドを実行する直前にtailコマンドで ログファイルを動的に監視するようにしましょう。 ちょっと時間がたってから、エラーが出力される場合もあります。 相手側にrejectされたとか、逆引き・名前解決できなかったとか.... # tail -f /var/log/maillog mailコマンドで最後はピリオドのみで終わってみたらどうなります? % mail hogehoge@###.com Subject: Hello Konnnichiha .

Lorenzini
質問者

補足

ただいま、# tail -f /var/log/maillog で監視していましたところ、ご指摘のとおり、数分後にまたログが出てきました。タイムアウトで送信が保留されているみたいです。 Jun 30 11:52:44 wwwsm-msp-queue[4486]: h5QMJ84g001664: to=root, delay=3+04:32:20, xdelay=00:00:00,mailer=relay,pri=14071651, relay=www.uwb.jp.,dsn=4.0.0, stat=Deferred: Operation timed out with www.uwb.jp. Jun 30 11:52:44 www sm-msp-queue[4486]: h5QMJ84f001664: to=root, delay=3+04:32:20, xdelay=00:00:00, mailer=relay, pri=14073094, relay=www.example.com., dsn=4.0.0, stat=Deferred: Operation timed out with www.example.com. Jun 30 11:52:44 www sm-msp-queue[4486]: h5R0MdZL001945: to=lorenzini@hotmail.com, ctladdr=nobody (65534), delay=3+02:・・・・・ 時々ログが更新されています。ほぼ同じメッセージなので、何度も送信を試みているようです。 今コンソールから見ていますが、tail コマンドから復帰することができなくなりました。q を押してみてもだめです。q と表示されるだけです。h でも同じです。 どうやったらプロンプトに戻れるでしょうか?

回答No.4

mail コマンドで自分のアカウント宛にメールを送ってきちんと届きますか? 例) アカウント hoge の場合  echo "TEST" | mail hoge mail これでメールが表示されればメールフォームプログラムの問題だと思いますよ。 p.s. もしそのサーバがメールサーバでないのなら、  sendmail_enable="NO" にした方がセキュリティ的には良いですよ。"NO" でもそのサーバから外部(とそのサーバ宛)へのメール送信は可能です。

Lorenzini
質問者

お礼

rc.conf は sendmail_enable="NO" にして、inetd で sendmail を起動させる方が、現在の目的には合致していると、私も思っていたところです。そして TCP Wrapper でアクセス制限しようと思います。ありがとうございます。

Lorenzini
質問者

補足

% echo "TEST" | mail hoge % mail No mail for lorenzini と言う感じで、まったくメールを送信していないようです。ログはあるし、ルーターのアクセスランプもその瞬間ぷかぷかしているので、何かしらのアクションは起きているようなのですが。とりあえず今夜はWEB行脚で修行の旅に行って参ります。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

#1です。 先ほどFreeBSD 5.0-RELEASEで確認したところ、sendmailは初期値で ローカル(メールサーバ上)から外部へ送信できるようになっています。 mailコマンドもOKです。 (インストール時のセキュリティはMediumです。) また、自宅サーバでDNSを立てているので、DNSによる名前解決 (正引き/逆引き/MX)ができています。 メール送信時に、/var/log/maillogにどんなエラーが出力されているか 確認して下さい。

Lorenzini
質問者

補足

メールコマンドでメールを送ってみると、最後に、EOTと出ました。End of text でしょうか?わかりませんが、その瞬間、ルーターのアクセスランプが点滅しているのでパケットは送っているような気もするのです。 % mail -s hello hogehoge@hoge.com hello   [Ctrl-D] EOT % vi /var/log/maillog ~~~~~snip~~~~~~ Jun 30 01:04:09 www sendmail[2854]: h5TG49rN002854: from=lorenzini, size44, class=0, nrcpts=1, msgid=<200306291604.h5TG49rN002854@www.example.com>, relay=lorenzini@localhost Jun 30 01:05:25 www sendmail[2854]: h5TG49rN002854: to=hogehoge@hoge.com, ctladd とありました。自分のメアドにも送ってみたのですが、やはり届かないんですよね。ちなみに、自分のアカウント宛にメール送ってみても % mail No mail for lorenzini 届いていませんでした。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.2

> /etc/rc.conf > sendmail_enable="YES" BSD起動時にsendmailデーモンを起動する(だけの)設定です。 sendmail自身が、どういう動きをしたらよいかは、Lorenziniさんが決めてあげないといけないのです。 先人の方々の見本を見ながら試行錯誤してみてください。 乗り切れば、それだけ力になります。 http://www.fkimura.com/sendmail-cf12.html http://www.med.osaka-u.ac.jp/pub/anes/www/comp/sendmail.html http://masui.net/FreeBSD/step1/chap4.html http://www.ask.ne.jp/~suzuki/bsd-mail_send.html 闇雲に設定しても動くかもしれませんが、sendmailがどんな動きをするべきなのかその仕組みを知ることもこれから勉強していくうえで必要ではないでしょうか? http://www.tcp-ip.or.jp/~ikken/intra/mail_bas.html http://www.kiu.ad.jp/forum/97/980124/makino/ http://www.nic.ad.jp/ja/materials/iw/1997/proceedings/tutorial3/ あっ、ちなみに私は、FreeBSDの知識も、sendmailの知識もありません。今回この質問をみて興味があって勉強させていただきました(汗)。インターネット上で・・。

Lorenzini
質問者

補足

ありがとうございます。ウェブサーバー上で使う sendmail ですから、わざわざ sendmail 本を買わなくてもいいかと高をくくった挙句に四苦八苦しておりました。自分で調べるべき労であるとともに、ご教示いただいたリンク群は非常にありがたいものです。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

sendmail.cfの修正 ローカルからのメールリレーの許可 名前解決(正引き・逆引き・MX) などの設定が必要になります。

Lorenzini
質問者

補足

早速のご回答ありがとうございます。やはり sendmail をいじるには .cf のコンパイルが必要不可欠ぐらいの気持ちで勉強しないといけないんですね。いつもながら、xjd 様には、UNIX をさわる心構えを学ばせていただいております。ご教示いただいたところ、学習させていただきます。

関連するQ&A

  • FreeBSDでのsendmailでのメール送信

    はじめまして FreeBSD11.0で自前サーバ構築をしています。 今回、サーバ上からsendmailで、下記ページを参考にメールを送信を試みています。 ・http://x68000.q-e-d.net/~68user/unix/pickup?sendmail FreeBSD11.0上での作業は、以下の通りです。 1. /etc/rc.confに下記を追加 sendmail_enable="YES" 2. リブート 3. sendmailが動作していることを下記で確認 # /etc/rc.d/sendmail status sendmail is running as pid 713. sendmail_msp_queue is running as pid 716. # 4. sendmailコマンドを実行 % sendmail From:送信元メールアドレス To:宛先メールアドレス Subject:タイトル xxx . % ●結果、コマンドは、正常に終了してますが、メールは、送信できません。 試しに自分の契約しているレンタルサーバ(FreeBSD9.1)で上記の4.のsendmail コマンドを実行すると、メール送信ができます。 環境設定など作業上なにが足らないのでしょうか。 FreeBSDのsendmailコマンドでの送信についてご存知の方がおりましたらご教示頂け ないでしょうか。 いろいろと調べたり試行錯誤したのですが、解決できなく質問をさせて頂きました。 よろしく、お願いいたします。

  • メールの送信

    mail コマンドからメールが送れるのは、sendmail が使われているのでしょうか?それとも mail コマンドが単独でメールを送っているのでしょうか? ただいま、管理人にメールが送れるウェブサーバーを立てたいと思っていますが、MTA を使わずにメールを送信できるのなら、使わずにメールを送信できるようにしたいです。PHP を使ってメールを送信する予定です。しかし、PHP を使ってメールの送信が出来ません。mail コマンドで送信できたので、PHP でも送信できそうな気がしたのですが。 やはり mail コマンドも sendmail を使っているのでしょうか?その場合、sendmail のパスは、/usr/libexec/sendmail/sendmail で合っていますでしょうか? /etc/mail/mailer.conf を見て、実際見に行ったら sendmail があるようですが、パスをそのように指定しても、メールが送信されません。 環境は FreeBSD5.0R です

  • freeBSD6/sendmail8.13.8でport25への接続が拒否されます

    freeBSD6.2とsendmail8.13.8をインストールしたのですが、外部からport25への接続が拒否されます。以前の他の質問者様と同様の症状で、sendmailプロセスは正常に動作しているようです。 --------------/etc/hosts.allow には sendmail: ALL : allow を記述してありますが、 -------------- netstat -an | grep \.25 で見ると tcp4 0 0 127.0.0.1.25 *.* LISTEN だけです。 -------------- /etc/rc.confには、sendmail に関する記述は何もしてません。 -------------- /etc/mail/sendmail.cf には 0 DaemonPortOptions=Port=smtp, Name=MTA 0 DaemonPortOptions=Port=587, Name=MSA, M=E の記述があります。 何が問題なのでしょうか? よろしくお願いします。

  • sendmailで、MSPとMSAだけを動かしたいのですが

    FreeBSD5.4でSendmailを起動しないようにしているのですが、CRONが送るメールだけは他のサーバーに送信したいので、MSPとMSAだけを動かしたいのですが、どのようなコマンドになるかわかりません。教えていただけないでしょうか。

  • FreeBSDのrc.conf

    FreeBSDをインストールしてrc.confを見ると、 inetd_enable="NO" inetd_enable="YES" ・ ・ kern_securelevel_enable="NO" kern_securelevel_enable="YES" てな感じで、なぜか同じ設定に対して正反対の記述を行っているのです。 これは一体どういうことなのかご存知の方がいたら教えてください

  • sendmailについて教えて下さい

    sendmailをサーバーにインストールしようと思ったのですが。 インターネット上でやり方を見ても、分からないというのが現状です。 恐らく、コマンドを使っていらっしゃるのでしょうが、普通にコマンドプロントでやってみても、出来ません。 なぜなら、コマンドが存在しないからです。まぁ、当たり前と言えるでしょう。 しかし、このままでは、インストールが出来ません。 インストールのやり方を詳しく、教えて頂ければと思います。 用途はもちろん、メール送信フォーム関連に使用したいと考えています。 sendmailのバージョンは8.14.3(最新版)です。 非常に、知識不足で、大変恐縮です。 何卒、宜しくお願い申し上げます。

  • FreeBSDでルータ作成ができなくてこまっています 

    当方初心者で、設定に丸3日程かかっていてかなりこまっています。 教えてください、よろしくお願いします。 FreeBSD7.2を使いブロードバンドルータとして動作させようと思っています。 接続方法はWANのIPをDHCPクライアントでIPSから取得し LANのIPは手動で設定し、Vistaを接続してインターネットに接続したいです。 FreeBSDビギナーズバイブルを見ながらPacket Filterを設定し、Vistaでインターネットに接続しようとすると、DNSの構成に問題がある可能性が有るとエラーがでます。 re0 WAN em0 local rc.confの設定は ---------------------------------------------------------- defaultrouter="192.168.1.1" gateway_enable="YES" tcp_drop_synfin="YES" icmp_drop_redirect="YES" pf_enable="YES" pf_rules="/etc/pf.conf" pflog_enable="YES" hostname="*****.localhost" ifconfig_re0="DHCP" ifconfig_em0="inet 192.168.1.1 netmask 0xffffff00" keymap="jp.106" ---------------------------------------------------------- Vistaのネットワーク設定は IPアドレス 192.168.1.18 サブネットマスク 255.255.255.0 デフォルトゲートウェイ 192.168.1.1 優先DNSサーバー 192.168.1.1 代替DNSサーバー FreeBSDのnameserver 設定している内容もあまり解かっていませんが、ブロードバンドルータを作りたいので教えてください、よろしくお願いします。

  • sendmail設定方法

    sendmailを今設定してます。環境は、centosを使いsendmailは、sendmail--.RHEL.4.3です。ちなみにm4は、m4-1.4.1-16です。 コマンドで、"m4 /etc/mail/sendmail.mc > /etc/sendmail.cf"を実行してもそのようなディレクトリはありませんとエラーが出ます。他のバージョンではこのコマンドで出来たのに…。どなたか教えて下さい。

  • postfixでsendmailすると何も起きない

    > sendmail xxx@xxx.com としてメール送信を試そうとしていますが、このコマンドを叩いても何も起きません。 main.confの設定を変えて試しつつgoogleで解決方法を探しましたが、半日以上かけて全く改善されないです。 ログなどにも何も出ないため手掛かが無い状況です。 どうすれば解決できるのでしょうか。 [これまでの経緯] ・AWS Linuxにpostfixをインストールし:25ポートでLISTENさせる ・telnet localhost 25では起動している ・/etc/postfix/main.confを編集 mydomain = hoge.com myorigin = $mydomain inet_interfaces = all inet_protocols = all mydestination = $myhostname, localhost.$mydomain, localhost mynetworks = 192.168.0.0/24, 127.0.0.0/8 home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown ・maillogにはsendmailコマンド後何も表示されない ・このサーバーは本来アプリケーションサーバーで、アプリケーション内からメールを送信した。 ・メインのメールサーバとしてGmailを使用している。DNSのMXレコードにGmailのアドレスを登録している。

  • Sendmailについて

    自分のホームページに、メールフォームを設置したいので、Sendmailをしようしたいのです。 そのため、CGIを探しています。 それとも、サーバーのSendmail機能を利用する方がいいのでしょうか? いずれかの方法をどうか、教えてください。

    • 締切済み
    • CGI