• 締切済み

sendmailでメールの送信が遅いんです。

sendmailでメールサーバを作ってみました(DNSも)。ところがメールの受信は1秒もかからないのですが送信は約7秒くらいかかってしまいます。送信しているメールにはもちろん内容はありません。自分自身に送っても外部ドメインに送っても遅いです。(メールはちゃんと送受信できます。)こんなものなのでしょうか?

みんなの回答

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

おそらくDNSのほうの設定も問題かと思います。 smtpサーバーを探すのに時間がかかってるのでしょう。 DNSのゾーンの設定が正しくできているかもう一度確認して みてはどうでしょうか?

tontoro
質問者

お礼

お二人ともありがとうございました。設定を見てもどこが悪いのかわからなかったので何気なくファイアウォールをすべて通過にしてみたところあっさりメールを送ることができました。私もDNSかsendmailの設定だと思っていたのですが間違っていました。ありがとうございました。

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.1

素人なので、あまり回答に自信はないですが。。。 間違ってる可能性がありますが、一応、私の思い込みはこんな感じです。 参考になればと思います。 まず MTA は、送信時に MUA が付加していない、RFC (2)822 的に必要とされるヘッダを付加します。 付加させるためには、オリジナルのメッセージのヘッダを一通り走査します。 走査と生成、付加に若干の時間が掛かります。 次に送信時に、Recipient の addr-spec に基づき、MX レコードを正引きします。mailbox 形式から addr-spec をパースし、addr-spec からパースした後に行われるの上、これは多分、全ルーティングポイントで行われるので、それなりに時間を要すとは思います。 また、ルーティングポイントで適宜 Received ヘッダを付加するので、その生成、付加作業も若干の時間を要します。 そして受信部分ですが、Recipient 側では、受けたメールに Received ヘッダを付け、ヘッダ上の mailbox から addr-spec をパースし、local-part をパースし、除外すべきヘッダを除外し、該当ユーザのメールボックスへ振り分けます。 恐らくこれらの動作が行われるので、送信のほうが受信よりはるかに時間が掛かるのは至極当然な気がします。(受信は、上記受信部分のみ…かな) ただ、7 秒というのは少々パフォーマンス的にはよくないとは思うんですが、sendmail.cf を見直せば、パフォーマンスはある程度向上すると思います。 あと、他の daemon 等のプロセスが sendmail に負荷を掛けてる可能性もあるでしょうから、カーネルも必要最小限で構築し、setpriority() を実装したプラットフォームであれば、nice 値を適宜変更する事によって、送信のパフォーマンスを上げる事も出来る気がします。 以上、素人なりの薀蓄でした。。。

関連するQ&A

  • sendmail 送信設定について

    メールサーバを外に立てました。ローカルのsendmailを送信だけに使いたいのですが、外部ドメインに対しての送信は正常に行えます。ただ、自分のドメイン宛てにメールを送ると、外部のメールサーバに届かず、ローカルマシンにメールが届いてしまいます。 これは、何処の設定を直せば、正しく外部のメールサーバ向けにメールが届くようになるのでしょうか。 /etc/mail/ sendmail.mc の、 Dmhogehoge.com や LOCAL_DOMAIN(`hogehoge.com')dnl を別の名前にしてもうまくいきませんでした。 すみませんが、教えてください、

  • sendmailで別サーバにメールを送信したい

    sendmailで別サーバへメール送信をしたいですが送信できないためわかる方、ご教授ください。 環境:CentOS 5 Sendmail:sendmail-8.13 DNS:bind サーバは3台あり、この環境内でメールを送信したいとおもっております。 構成としては以下となります。 サーバA(SA) 10.100.10.2 サーバB(SB) 192.168.10.2 サーバC(SC) 192.168.10.3 目的:SAからSBへメールを送信したい SB⇔SC間は送受信ができております。 しかし、SA⇒SBの送信ができなくて困っています。 全サーバは、POP等は構築していないため、サーバ上でメールを確認する状態です。 SAのドメイン名は、sendmail.co.jp SBのドメイン名は、centos.co.jp DNSは、SAのみに構築しており nslookup centos.co.jp ============================== Server: 127.0.0.1 Address: 127.0.0.1#53 Name: centos.co.jp Address: 192.168.10.2 ============================== dig centos.co.jp ================================================================================ ;; QUESTION SECTION: ;centos.co.jp. IN A ;; ANSWER SECTION: centos.co.jp. 86400 IN A 192.168.10.2 ;; AUTHORITY SECTION: centos.co.jp. 86400 IN NS ns1.centos.co.jp. ;; ADDITIONAL SECTION: ns1.centos.co.jp. 86400 IN A 127.0.0.1 ;; Query time: 2 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ================================================================================ SBにはDNSがないため、hostsに記載して名前解決をしております。 SAからの送信の際に気になるのが、 mail test@centos.co.jp に送信しようとすると(SBにはtestアカウントは作成してあります) 送信ログをみるとrelay=test@localhostとDNSをみていないような気がしております・・・ SAは、 resolve.confは、127.0.0.1と設定しています。 ※これが正しいのかもわかりませんが。 nsswitch.confは、host: dns files SBは、 resolve.confは記述なし nsswitch.confは、host: files SAのsendmailは外部送信できるようにはしているつもりです。 m4を使ってcfを編集しており、元々のcentosのsendmailから変更した点は以下です。 ※頭のdnlを外したもの/つけたものも含んでいます。 DAEMON_OPTIONS(`Port=smtp,Addr=10.100.10.2, Name=MTA')dnl dnl FEATURE(`accept_unresolvable_domains')dnl LOCAL_DOMAIN(`centos.co.jp')dnl Cwcentos.co.jp MASQUERADE_AS(`centos.co.jp')dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(`.centos.co.jp')dnl FEATURE(`virtusertable',`hash /etc/mail/virtusertable.db')dnl VIRTUSER_DOMAIN_FILE(`/etc/mail/virtuser-domains')dnl SBは受信できるように local-host-namesにsendmail.co.jpに記述し、 念のため、hostsにsendmail.co.jp 10.100.10.2 を記述してます。 pingは相互に飛ばせます。 telnet sendmail.co.jp 25 をするとプロンプトが返ってきません。 そのかわり、telnet 10.100.10.2 25 をするとできますが結果は同じになります。 上記のことから質問ですが、 1.SBについてはDNSがないため、hostsで解決させているがそれで問題ないのか。 2.上記のログからSAはcentos.co.jpに送信しようとしているのでしょうか? 正直、bind、sendmailの設定を初めてやっているので よくわかっていない部分があるため、足らない設定個所や気になるところがあれば 教えて頂けると幸いです。

  • sendmailの送信ができません

    Linuxもsendmailも初心者です。 Red-HutLinux7.3のマシンで、ダイナミックDNSドメインを取得し、入門書に従って、メールの送信まで可能な状態までsendmailの設定をしました。 テストでプロバイダのアドレスに送って、別のPCで受信しようとしたのですが、メールがきていませんでした。 そこでsendmailの再起動やネットワーク設定を見直していたところ、一旦はテストのメールが 受信できました。しかし、その後もう一度テストメールを送信したところ、 また受信されなくなってしまいました。 /var/log/maillogを見たところ、一旦受信できた後またできなくなった部分には、「host name lookup failure」と記述されていました。 sendmailのバージョンは、8.11.6です。 何が原因なのでしょうか。お分かりになる方がいらっしゃいましたら、宜しくお願い致します。

  • sendmailの設定

    sendmailの挙動で困っております。。。 Webサーバにメールフォームを作成しており、 そのフォームからメール送信するようにしております。 他ドメイン宛のメールはちゃんと送ることはできますが、 自ドメイン宛のメールは当方のメールサーバに送られずになぜか、 送信元のWebサーバで受信してしまいます。(自分自身) Webサーバはsendmailを使っているのですが、自ドメイン宛のメールは Webサーバ上で受けずにメールサーバで受ける必要があるので、local-host-namesは書いておりません。。。 local-host-namesを書いていないので、 自分宛とは判断せずにMXレコードを引いて当社メールサーバ宛てに 来るものと思っていたのですがなぜでしょうか? sendmailで受取るドメインを設定するのは他にも あるのでしょうか?

  • sendmail→携帯メールの遅延

    初心者ながら自宅サーバを構築しているhiroshi_dogと申します。よろしくお願いします。 CentOS3.7上でsendmailを動かしています。 ドメインはDDNS+DiCEの半オリジナルです。 sendmailの設定終了後、動作検証として以下のことを試しました。 ・内部/外部で同一ユーザ同士でメールの送受信 ・内部/外部で他ユーザ間でメールの送受信 ・内部/外部でプロバイダのメールアドレスとの送受信 ・内部/外部で携帯との送受信 ※内部とはサーバと同一LAN内のパソコン、外部とはインターネット経由でサーバにアクセスする友人宅パソコンなどです。 しかし、内部/外部から携帯に送信する場合だけ、30分~7時間程度の遅延を伴います。(携帯から半オリジナルアドレスに送信するときは遅延なく届きます) ただし、3~5通に1通くらいの割合(ランダム?)で普通に遅延なく届くこともあります。 携帯キャリアはvodafoneで、この内容について問い合わせたところ「特定のIPアドレスに対して、拒否や優先順位の設定は行っていない」とのことでした。 また、検証に使用した携帯アドレスには受信拒否などの個人設定はしていません。 ネット上で検索したところ、「sendmailやqmailでは携帯への送信に遅延が発生しがち」という記述をいくつか見つけました。また、そのsendmailなどの携帯への遅延を解消するシステムを開発し、商売にしている会社もあるようです。 …ということは、設定や環境などの問題ではなく、sendmailを使用する以上、仕方ない問題なのでしょうか。 私のサーバは学習のための環境で、実用しているわけではないので、現状で支障はありません。納得したいだけの質問で申し訳ないのですが、ご教示いただければ幸いです。

  • Sendmailの設定について

    こんにちは。sendmailをどのように変更すべきか教えていただきたいのですが、うまく説明できるか少し自信がないのですが、経緯を含めて説明します。 (環境:CentOS Linux 4.6 Sendmail version 8.13.1) ■以前 元々あるサイト(example.com)を運営しており、example.comドメインでメールの送受信もできていました。 この時点で、example.comサイト上のフォームからphpのmailコマンドで、example@example.comにメールを送信すれば、メーラーで受信ができました。 ■現在 今回、google appsを導入してDNSなどを変更し、example.comでのメール送受信は元のサーバではなく、google経由で送受信するようにしました。 これによって1つ問題が生じています。 1.【OK】メーラーによって別ドメイン aaaaaa@aaaaaaa.com から example@example.com への送信 →(その逆もOK) 2.【OK】example.comサイト上のフォームから別ドメイン aaaaaa@aaaaaaa.com への送信 3.【問題】example.comサイト上のフォームから同ドメイン example@example.comへの送信 →【appsで受信できない】※ただし、sendmailのユーザーメールボックスには入っている。 このように、3つ目のケースで受信できないという現象が起きています。 フォームのmailコマンドを実行すると、サーバー内から送信し、外(google apps)へメールが行かずに内部で受け取ってしまう感じです。 これは、sendmailが送る際に、DNSでgoogle appsに飛ばすと認識していないのだろうと思いますが、どうやったら設定できるのかが皆目検討がつきません。最初はqdsmtp(http://hal456.net/qdsmtp/)を入れてフォームの送信方法を変えようと思ったのですが、ssl通信ができない様でやっておりません。 どのようにすればよいのか、詳しく教えていただけると嬉しいです。 宜しくお願いします。 (※当方あまりこのような設定に詳しい方では無いため、私の操作するsendmailの設定画面のスクリーンショットを添付しますのでGUIでの変更方法で教えていただけると大変助かります。)

  • メールサーバ構築 メールソフトから送信出来ません

     自宅サーバ+sendmail+Dovecotでメールサーバの構築をしようとしています。 http://www.fmmc.or.jp/fm/nwts/rh_linux/ch3/3_2_2_3.html  などを見て一通りの設定を行い、特に気になるエラーもなかったのですが、動きません。  メールソフトからそのドメインのアカウントのメールは受信出来るのですが、送信しようとすると「smtpサーバに接続出来ませんでした」とエラーが出ます。  また、telnetでそのドメインの25番ポートへの接続も出来ません(110番ポートには接続出来ます)。ドメインをipアドレスに変えても接続出来ません。  sendmail.mcの DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl  はコメントアウトしております。  SSHでメールサーバに接続後、sendmailコマンドでテストメールを打った場合は、外部サーバにも、内部サーバにも、メールの送信が出来ます(sendmailはちゃんと動いているということですよね?)。  プロバイダのメールアカウントから、そのメールアドレスに宛てて送信すると送信出来、エラーメールも返って来ないのですが、サーバ上のユーザーメールボックスにはメールは届いていません(どこに行ったの?)。  外部からのメールが届かないことから、DNSのMXレコードの設定がおかしいのかな?と思ったのですが、それにしては受信が出来ているのが気になります。また、外部からipアドレスで繋ごうとしても繋がらないのも気になります。  MXレコードは、ゾーンレコードを管理出来る無料ドメインのサービス(co.cc)で設定していますが、設定フォームの項目が固定の部分もあり、入れれるものを入れた感があり、自信がありません  Host:ドメイン名(ipアドレスの入力が出来ない)  Type:MX  Value:ドメイン名(ipアドレスの入力が出来ない)  サーバは1台なので、smtpサーバもpopサーバも同じでドメイン名での運用になるので、サーバ内でのDNSレコードは追加しなくて良いという認識でよいでしょうか?(pop.ドメイン などとならないので)    どの項目をどの方法で確認して、問題点の絞込みをしていいかさえ分からず、質問させていただきます。  お目汚しですが、お気づきの点・確認方法・参考サイトなどあればご教示いただけないでしょうか?

  • 自家製Sendmailについて

    現在、自宅でTurboLinux7.0ServerでBINDを構築したので、DNSは自分を指定しても(プロバイダ指定のものを使用していなく)と名前解決してくれますよね。(ルートDNSの情報があるので) では、そこで質問なんですがSendmailを一緒のPCにインストールしした場合、自分をSMTPに指定して外部のアドレスにメール送信できるのでしょうか? [環境] 固定IPのもらえないADSL回線 NATを使ってインターネット接続 DNSで設定したドメインは実在しないもの 私の理論では 1.メールクライアントからメール送信 2.自分のSMTPが受取る 3.SMTPはメールアドレスのドメイン名が自分でないと判断 4.自分のDNSが目的のドメインのMXレコードを探し出す 5.MXレコードが見つかると名前解決ができ無事目的のSMTPまで送信できる。 どうでしょう?できそうですが実際はどうなんでしょうか? こんなことができてしまうと簡単に成りすましができてしまうのですが・・・

  • Sendmailの設定

    違うジャンルで以前質問させて頂いたのですが、回答が なかったためこちらで質問させて頂きます。かなり困って いますので、よろしくお願い致します。 Solaris8でsendmail8.11.2を使用しているのですが、 あるPCから自ドメイン以外へメールを送信しようとすると あなたはIPアドレスを偽っていますというエラーがでて 送信できません。また、自ドメイン宛のアドレスには送信できます。 その後管理しているDNSの設定を見てみると、送信できなかったIPアドレスの正引きと逆引きのホスト名が違っていたため、そこを修正すると外部へ送信できました。 今までの古いバージョンのsendmailでは起こっていなかったので多分新しいバージョンの仕様だと思うのですが。 現在DNSの情報を整理しているところなので、もしこのsendmailの機能を解除する設定をご存知でしたら教えて頂けないでしょうか?

  • Sendmail メールをドメイン名のみで受信する

    お世話になります、初めて投稿します。 現在メールサーバの更新を行っています。 旧サーバがSolaris&Sendmail8.9.3 新サーバがRHEL&Sendamail8.13.1 旧サーバはCFを使っており、新サーバはsendmail.mcを使っています。 一通りの設定が完了したのでテストを始めているのですが、 1つだけ旧サーバと挙動が違う点が発生しており、その解決方法を 知っている方がいれば教えていただけたらと思います。 旧サーバでは外部からユーザ名@FQDNのアドレス宛にメールを 送信するとRelay operation rejectedで戻ってきます。 ユーザ名@ドメイン名のみであれば問題なく送信できています。 これが新サーバになるとユーザ名@FQDN、ユーザ名@ドメイン名のみ 両方に送信できてしまいます。 新サーバでユーザ名@FQDNでのメールの受信をできなくすることは 可能なのでしょうか? CFを使った設定からsendmail.mcへの設定の対応がいまいち よくわかっていないのが原因かもしれません。 すいませんが知見のある方よろしくお願いします。