• ベストアンサー

メールサーバーの違いによる受信方法の違いはあるのでしょうか?

先日、VC6.0を使用してOpenSSLを使用したSSL対応のメーラを作成しましたが、 テストサーバではエラーが起こらないのですが、実装サーバではエラーが起こってしまいます。 そこで、ご質問なのですが、 メールサーバに使用するソフト(Postfix等)によって、 受信時に渡ってくるデータが異なることはあるのでしょうか? テストサーバーにつきましては、 Courier-IMAPを使用しております。 SSLを使用するのも初めてであり、 メールサーバーにつきましての知識もないため、 わかりずらい質問になってしまい申し訳ないのですが、 どうかよろしくお願いします。

  • teala
  • お礼率100% (13/13)

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

>POPを使用しております。 ならば、とりあえずpostfixは関係ないでしょう。 >FD_READの知識もなく、ネットで調べて見ましたが、 >こちらは、受信バッファがある場合に必ず受けるものではないのですか? Socketの受信バッファに入れば通知されるでしょう。 が、SSLの場合、暗号化されたデータはSSLのhandshake(どういう暗号化方式を使用するかとかお互いの対応しているバージョン等々)のデータも送受信されます。 一方Socketはその中に流れているデータがなんなのかについては関知しません。 # TCPなのでストリームの順番とエラー発生時の再送処理などは保証されますが。 で、handshake中だった場合はアプリケーションが必要とするデータはありませんからSSL_read()しても有効データは取れません。 ということで-1を返しているのでしょう。 # エラー取得などで調べれば取れるかも知れません。 # 0を返さないのは「Socketの切断」とされないためかと。 とりあえず、私のメールチェッカーではFD_READの後でSSL_in_connect_init()で接続処理中か判定しています。 # ヘッダのコメントとか確認してください。 ちなみに、SSL_read()で読み出せるデータがあるかどうかはSSL_pending()で取得できる……らしいです。 私はあまりアテにしていませんが。 また、SSL_read()したあとFD_READの通知が来なくなることがあるみたいです。 # どういう条件の時かは忘れましたが…受信データがあるハズなのにFD_READが来なくなったことが。 # プログラムにミスがあった可能性は否定できませんけど。

teala
質問者

お礼

ご回答ありがとうございます。 一応、自己解決致しました^^; 問題としては、Char型の配列が 初期化されていなかった部分が問題のようでした。 しかし、メールサーバの違いによって、 エラーが出るとは思えない部分の問題だったので、 完全に修復出来たとは言えないかもです・・・。 >とりあえず、私のメールチェッカーではFD_READの後でSSL_in_connect_init()で接続処理中か判定しています。 こちらの関数がとても気になるので、 再度、調査を重ねていこうと思います。 >ちなみに、SSL_read()で読み出せるデータがあるかどうかはSSL_pending()で取得できる……らしいです。 SSL_read()の部分で、SSL_pending()は使用しておりましたが、 どうも使い方が悪いせいか、こちらでは上手く動作しませんでした^^; >また、SSL_read()したあとFD_READの通知が来なくなることがあるみたいです。 なるほど、ネットワークプログラムはサーバ内の環境によっても、 かなり事例が異なって来るのですね・・・。 奥深いです>< とりあえず、エラーが表示されなくなりましたので、 まだまだネットワーク部分に関しては、ご教授頂きたいことがあるのですが、 質問掲示板として内容がずれてしまう気がしますので、 これで締め切らせて頂きます。 大変ご親切に有難うございました^^

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>メールサーバに使用するソフト(Postfix等)によって、 >受信時に渡ってくるデータが異なることはあるのでしょうか? >テストサーバーにつきましては、 >Courier-IMAPを使用しております。 SMTPとPOPとどちらなんでしょう? POP over SSL対応なメールチェッカーを作ったことありますが… FD_READ受けてSSL_read()で-1が返される。ということがありました。 復号できるだけのデータが受信できていなかったのでしょう。 また、SSLのhandshake中もFD_READを受けるコトがあります。

teala
質問者

お礼

ご回答ありがとうございます。 >FD_READ受けてSSL_read()で-1が返される。ということがありました。 >復号できるだけのデータが受信できていなかったのでしょう。 >また、SSLのhandshake中もFD_READを受けるコトがあります。 FD_READの知識もなく、ネットで調べて見ましたが、 こちらは、受信バッファがある場合に必ず受けるものではないのですか? SSL_read()を行っている部分で、 エラーが返されていた気がするので、 もしかしたら、同様の現象かもしれないです^^; 知識が足りず申し訳ないのですが、ご教授お願いします。

teala
質問者

補足

>SMTPとPOPとどちらなんでしょう? POPを使用しております。

関連するQ&A

  • メールサーバー監視

    postfix+courier-imap+mysql でメールサーバー構築し、 SquirrelMailを使って運営しているのですが、 最近、特定のアカウントの送信量が多いので 監視のために、特定のアドレスに対する 送信、受信メールを別のアドレス宛に 転送(コピー)することは出来ないでしょうか。

  • iphoneのメールをentourageで受信するにはどうすればよいでしょうか?

    iphoneのメール(xxx@i.softbank.jp)をentourage(PCメーラー)で受信したいので、以下のサイトを参考に設定してみましたが、「IMAPサーバーでエラーが発生しました/セキュリティエラーです。データ暗号エラーです。」というエラーが出てしまいました。 OSはMac OS 10.2.8です。 http://www.qve.jp/2008/07/isoftbankjp-de-thunderbird/ http://rextang.net/blogs/japanese/archive/2008/08/11/6341.aspx http://spacewalker.jp/mt/spacewalker/archives/671 IMAPサーバー: imap.softbank.jp SSLを使用/IMAPポート143/常に保護されたパスワードを使用 SMTPサーバー: smtp.softbank.jp SSLを使用しない/SMTPポート587/SMTPサーバーで認証を必要とする(アカウントを設定しログオン) 受信出来ているかた、是非教えていただけませんか?

  • postfix + Courier-IMAP でのメール読み出しについて

    【サーバー】 OS:VineLinux MTA:postfix pop:Courier-IMAP 【クライアント】 OS:windowsXP sp3 メーラー:Thunderbird メーラー設定:サーバー名=サーバープライベートIPアドレス、ポート=110、セキュリティ設定=SSL,TLSを使用しない ※家庭内有線LANで接続 自宅サーバーの構築中です postfix及びCourier-IMAPのインストールを実施し /home/user01/Maildir/new/配下に、外部からのメールを受信しています。 メールの受信は無事にできていると思うのですが この状態で、クライアントPCのメーラーからサーバーに受信メールを 読み込もうとする際に パスワードを求められるのですが、サーバーのログインパスワードを入力すると、「パスワードを送信できませんでした。メールサーバー192.168.yy.yyからの応答:Login failed」とダイアログが表示されます。 /var/log/maillog では以下の内容が出力されます。 Mar 12 20:57:14 localhost pop3d: Connection, ip=[::ffff:192.168.xx.xx] Mar 12 20:57:19 localhost pop3d: LOGIN FAILED, user=user01, ip=[::ffff:192.168.xx.xx] Mar 12 20:57:27 localhost pop3d: Disconnected, ip=[::ffff:192.168.xx.xx] ここで入力すべきはLinuxにログインする際のパスワードと同一ではないでしょうか? どうかご教授ください、よろしくお願い致します。

  • メールサーバーを作って、受信はできるモノの・・・

    メールサーバーを作ってみて、受信はできるようになりましたが、送信ができません。 受信者の 1 人がサーバーによって拒否されたため、メッセージを送信できませんでした。 拒否された電子メール アドレス : test@*****.ne.jp 件名 'test', アカウント : 'test', サーバー : '*****', プロトコル : SMTP, サーバーの応答 : '550 User not local. Authentication required for relay', ポート : 25, セキュリティ (SSL): なし, サーバー エラー : 550, エラー番号 : 0x800CCC79 とアウトルックで設定をした場合、エラーが返ってきてしまうのです。

  • VineLinux メールサーバーのメール受信

    Postfixを使っています メールサーバーに自分のドメインで送信しても いっこうに受信しません メールサーバーの設定を エラーを返すにしてるので エラーであれば普通は帰ってくるはずなのですが

  • Windowsメールの受信について

    WINDOWSメールにおいて、imap.jp.aol.comでのメール受信がが6月下旬より止まっています。開こうとすると、「'受信トレイ' フォルダからのヘッダーのダウンロードは完了しませんでした。 操作はユーザーによって取り消されました。 アカウント: 'imap.jp.aol.com', サーバー: 'imap.jp.aol.com', プロトコル: IMAP, サーバーの応答: 'LOGIN failed', ポート: 143, セキュリティ (SSL): なし, エラー番号: 0x800C006F」と表示されます。解決方法を教えてください。

  • POP3サーバ(Courier-IMAP)でメールの受信ができなくて困っています

    POP3でメールを受信できるように、CentOS4にcourier-imapをインストールしました。 メールを送るとMaildirフォルダのnewの中に、送ったメールが溜まっているのは確認できるのですが、メールクライアントソフトで受信しようとするとエラーになってしまいます。 110番、143番ポート共に開いていることは確認しています。 ほかにもなにかインストールしたり設定する必要があるのでしょうか?

  • メール設定のサーバーについて

    メーラーにアドレスを登録する際に必要な情報で受信サーバーと送信サーバーがあrますが、受信サーバーはIMAPサーバとPOPサーバーがありますが、IMAPとPOPの違いは大まかにわかりませす。送信サーバーがSMPTサーバなのもわかります。 ここから質問です。 https://hosomepapablog.com/rakutenmobile/mail_setting 上のページの下のほうに「パソコン(Windows Liveメール)のメール設定方法」とあり、画像の2枚目のことなのですが(画像添付) 説明に「画面の左側が受信サーバー(IMAPサーバ)、右側が送信サーバー(SMPTサーバ)の設定になります。」とあるのですが、添付画像にも赤線を引きましたが、受信サーバーをIMAPサーバーに設定をしているのに、なぜ、サーバーの種類とサーバーのアドレスが「POP」なのでしょうか? 教えてください。

  • 受信メールサーバについて

    受信メールサーバに,POP3とIMAPとあるんですが これって違いがあるんですか? よく分からないのでPOP3にしてるんですが・・・ よろしければこの違いを教えて下さい.

  • SylpheedがIMAPサーバーから受信してくれません。

    SylpheedがIMAPサーバーから受信してくれません。 私のプロバイダー(DTI)がIMAPサーバーに移行しまして、それをチャンスにメーラーをSylpheedに変えてみました。"全般の設定"は"マニュアル"どうりに全て済ませましたが、サーバーから受信することが出来ません。 「メッセージ>受信>全アカウントから受信」を選択しても、ツールバーの「全受信」をクリックしても、Sylpheedのどのフォルダーにもメールは入っていないのです。 一方、メールを送信して見ますと、実際に受信側で受信されています。Sylpheedの"メール箱 (MH)/送信控"フォルダーにもそのメールが入っています。 送信はうまく行くわけですから、アカウントの設定には問題がないと思うのですが、如何でしょうか。 "メール箱 (MH)"と"*** (IMAP4)"との関係はどうなっているのでしょうか。 どこかへまをやりそうな所について、教えていただければ幸いです。 Sylpheedの様子は、概略次の通りです。 Windows XP SP3の上で働いています。 Sylpheedのフォルダビューには、初めからある"メール箱 (MH)"の他に、"*** (IMAP4)"フォルダーが出来ています。"*** (IMAP4)"が"通常使用"に指定したアカウントの筈なのです。