VC++6.0でC言語を使ってメールの受信確認プログラムを組む方法

このQ&Aのポイント
  • VC++6.0でC言語を使ってメールの受信確認プログラムを組む方法について詳しく教えてください。
  • メールを1通も受信していない場合、プログラムはどのように動作しますか?
  • VC++6.0でのメール受信プログラムにおいて、エラーメッセージが表示されない場合の対処方法について教えてください。
回答を見る
  • ベストアンサー

VC++6.0で、C言語を使ってメールの受信確認プログラムを組んでいま

VC++6.0で、C言語を使ってメールの受信確認プログラムを組んでいます。 どのような動きをするのか一度知っておきたくて、 猫でもわかるプログラミングの「第230章 メールを受信する」 [http://www.kumei.ne.jp/c_lang/sdk3/sdk_230.htm] を組んでテストをしてみたのですが、 メールを1通も受信していない場合、 「0 messages」が返されると書いてあるのですが、 何度やっても返されません。 また、USERNAME を入れた辺りから、 返ってくる値がずっと[+OK]しか返ってきませんが、 エラー等も確認できません。 LISTを送信したときには 「-ERR not that many messages」ような エラーが返ってきます) 何か仕様が変わって、OKでは判断せずに、 上記のエラーを出力させてから判断するプログラムになった ということでしょうか。 メールがある場合は、通常通りに動作しています。 宜しくお願いいたします。

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

  • ベストアンサー
  • jgk
  • ベストアンサー率75% (104/138)
回答No.1

違います。 +OKや-ERRの後の文章は仕様では決まっていません。 メールサーバーが好きに返していいのです。 PASSコマンドの応答でメール件数を返す必要もないのです。 ですので、そこのプログラムがPASSコマンドの返答を見てメール件数を判断するという、 間違ったことをやっているのです。 メール件数を確認するには、STATコマンドを使用するのが正しいです。 (帰ってくる書式等はPOP3の仕様書のRFC 1939を参考してください)

g2_destiny
質問者

お礼

なるほど、捉え方を思い切り間違っていたのですね! POP3の仕様を見てみて、理解&解決できました。 ありがとうございました!

その他の回答 (1)

  • f272
  • ベストアンサー率46% (7995/17090)
回答No.2

#1さんの言う通り「+OK **** has X messages (.....octes)」という返事を期待してるのは間違いだね。 STATを使うのが正しい。 でも,メッセージがないときにLISTに対して-ERRを返すのは変ですね。 it issues a positive response followed by a line containing a termination octet and a CRLF pair. のハズですから。

関連するQ&A

  • メールが受信できない

    メールを受信しようとするとパスワードの入力が出てくるようになり、 すでに入力されているのでOKを押しても何度も出てきます。 キャンセルを押すとこんなエラーメッセージが出てきます。 タスク 'メールアドレス - 受信中' でエラー (0x800CCC92) が報告されました: '電子メール サーバーがログインを拒否しました。 アカウントのプロパティで、アカウント名とパスワードを確認してください。 確認するには、[ツール] メニューで [電子メール アカウント] を選択します。 サーバーが応答しました : -ERR Login failed.' 確認しましたが駄目でした。 どうすれ良いでしょうか? windows vistaでメールはocnです。

  • メールが受信できません。

    ALL-Mailを使用しています。 1ヶ月前からメールを受信できなくなってしまいました。 色々と質問したり検索してみましたが、解決には至りませんでした。 どなたこのエラーを解決できる方がいらっしゃいましたら教えて頂けると幸いです。 AL-MAILを起動して、メールを受信しようとすると、しばらく受信をしようとするのですが、エラーのウィンドが出てしまいます。 エラーの内容です。 サーバへのコマンドが受け付けられませんでした。 Command:DELE 1 Expect:+OK Return:-ERR popgate inactivity timeout Result:11 こんなエラーが出てしまいます。。。 どうしたらよいでしょうか??? ちなみにYahooメールアドレスを使用しています。 よろしくお願いします。

  • メールの送信はできて受信ができません

    会社のパソコンにて 同じアドレスを2台で使おうと設定をしました(昔はしていました) 入力をして設定をしたところ自分のパソコンからはメールは送信はできますが受信ができません。 パスワード確認の表示がでます、、 メール サーバーにログオンできませんでした。 パスワードが拒否されました。 , サーバーの応答 : '-ERR Username or password is invalid or incorrect.', ポート : 110, セキュリティ (SSL): なし, サーバー エラー : 0x800CCC90, エラー番号 : 0x800CCC92 と出ます。 この場合はどうしたらよいでしょうか

  • コモンコントロールInitCommonControls

    久米井さんのサイトを参考にしてコモンコントロールの使い方を 調べているんですが、57章 http://www.kumei.ne.jp/c_lang/sdk/sdk_57.htm こちらではInitCommonControls関数です。 148章 http://www.kumei.ne.jp/c_lang/sdk2/sdk_148.htm こちらでは、InitCommonControlsExが使われていますが、 従来のInitCommonControls関数でも差し支えはありません。(多分) と書かれています。 その多分についての詳しい情報を教えてください。

  • AL-MailでYahoo!メールが受信できません。

    AL-MailでYahoo!メールが受信できません。 以前は問題なく使えていたのですが、約40日ぶりにYahoo!メールをAL-Mailで受信しようとしたところ、 (全100通以上の内)最初の6通ほどは受信したところで次のようなエラーが出て、受信がストップ。 その後、何度「送受信」ボタンを押しても同じエラーが出て受信できません。 エラー サーバへのコマンドが受け付けられませんでした. Command: RETR1 Expect: +OK Return: -ERR problem retrieving message. Result: 11 いったいどうしたらまた受信できるようになるのでしょうか?

  • C言語のプログラムを作りました。

    以下のプログラムは動くかどうか、確認して頂けませんか? おかしい部分があれば指摘して下さい。 また、自分で考えたのですが、このプログラムはどのように考えられたのか、作成方針は考えられますでしょうか? なぜ聞くかというと、皆さんが考えられるように自分も考えているのかどうか、作成方針を聞くことにより判断したいのです。 →作成方針を記述の上、プログラムについてご指摘の方、よろしくお願い致します。 #include<stdio.h> main() { int a,b,c; b=0; c=1; printf("a="); scanf("&d",&a); do{ c=c+1; b=a%c; }while(!(b==0)); if(c==a); printf("sosu-desu n); }else{ printf("sosu-denai n); } }

  • Cメールが受信できない!

    私はauで、EメールをCメールとパソコンに転送して使ってるんですが、 パソコンには転送したメールが届くのですが 急にCメールには届かなくなりました。 アドレスは何回も確認したのであってると思います。 まだ買ってから少ししかたってないので あまり携帯に詳しくないのですが、 なぜこうなってしまったのかわかりますか? あと、Eメールを差出人と件名だけ受信するようにして、 あとから本文を受信したら普通に受信するより どれくらい高くなってるのでしょうか? 2つも質問してすみまん。

  • PostPetでメールが受信が出来ません

    メールサーバには、10個のメールがありますが受信できません。 前日までは、メールを受信できました。 Eudoraでメールをチェックするとエラーが出ます。 エラーは、「ERR on such message」です。 Mac 9.2.2 PostPet2001 Ver2.0.2jです。

    • ベストアンサー
    • Mac
  • dllの作り方

    環境 WIN98 VC++6.0 MFC にて 猫でも~において 161章でdllを作りましたが、xxx.dllファイルは作成されますが、xxx.libが作成されません。 162章では両方作られ問題ありません。 作り方は、 メニューから「ファイル」「新規作成」「プロジェクト」(タブ)を選択します。そこから「Win32 Dynamic-Link Library」を選びました。 どうすればxxx.libが作られるのか教えてください。 161章 http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm 162章 http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm

  • cメールが受信できない

    皆さんはじめまして。 最近携帯を使い始めた者です。 auのa5302caという機種なのですが、cメールが受信できません。 正確に言うと、受信できるはず(と思っている)cメールが受信できない(相手からの送信時点で「送信できません」や「遅れません」といったエラーになるようです)のです。 それは相手のcメール設定が発信者番号非通知となっている場合です。 番号通知ならエラーも出ず、こちらにも送られてきます。 au携帯のcメールの「おしゃべりモード」なるものは番号通知をしないと送信自体不可のようで、説明書にもそうありますが、問題になっているのは「通常モード」です。 通常モードで送信時番号通知が必要とは私の機種の説明書にも、相手の説明書にも書いていないようなのです。 私の機種のcメール設定で、非通知は受けないというような部分があるのかも思い散々調べましたが見当たりません。 送信側として複数のau携帯電話(a1302saは確定、その他は機種不明)から試してもらいましたがどれも番号通知でcメールを送った場合のみOKで非通知だとNGでした。 最近やっとできた感じよいメル友に、「できるはず」とウンチクを散々たれており、やってもらって、結局出来ないという事態になっており、相手に申し訳ない気持ちになっています。私の名誉挽回もちょっとしたい気持ちもあります。 すっきりさせたいのですが、どなたかこのあたりの情報をお持ちの方はいらっしゃいませんでしょうか? どうぞよろしくお願いします。

専門家に質問してみよう