HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0208
E.Tメールの受信について12解決


E.T

リンク

2015/2/8(Sun) 22:09:20|NO.67338

こんにちは。
メールの送受信については前回http://hsp.tv/play/pforum.php?mode=pastwch&num=63113で聞いたのですが
その時は送信だけ必要だったのでGOMEKIT!さんの回答で出来たのですが
今回はメールの受信もしたいので
すがやり方がわかりません。
条件としては(できれば).dllは使ってもいいが.hpiはなるべく使いたくない
です。なんとなく僕は.hpiが嫌いです…
dllを使って取得したいのはメールの一覧、タイトル、本文、受信日時、送信済み、迷惑メール、
送信者のメアドetc...などです。
なにかいい方法があったら教えて下さい!お願いします。



この記事に返信する


skyblue

リンク

2015/2/9(Mon) 07:12:32|NO.67346

POPと言うプロトコルを調べて下さい。
後は仕様に従ってSMTPと同じようにコマンドを送るだけです。
推奨はしませんがSSL/TLSで通信したい場合はPOPSを調べて下さい。



E.T

リンク

2015/2/10(Tue) 21:12:51|NO.67361

POPを調べてみるとhttp://www.atmarkit.co.jp/ait/articles/0106/05/news001.html
というサイトをみてコマンド?を送信すればできそうだと思いました。
でもそこからが思い浮かびません…

※期末が明後日、明々後日でテスト勉強のため返信が送れるかもしれません!



さか

リンク

2015/2/10(Tue) 23:56:54|NO.67365

前にメール内容まで取得するのを作ったことあるのですがOSが壊れたときになくなってし
まいました。メール受信はhspsockで出来ますよ。
以下はpopサーバへ接続してメール件数取得ですが、調べれば内容取得も出てくると思い
ます。
popサーバ名とアカウント、パスワードは以下の〜に入れてください。

#include "hspsock.as" sdim buf,256 saver = "〜";受信サーバ名(POP3) user = "〜";ユーザ名 pass = "〜";パスワード sockopen 0,saver,110 if stat!0:sockclose 0:dialog stat repeat wait 1:sockcheck 0 if stat=0:break loop sockget buf,256,0 if stat!0:sockclose 0:dialog stat mes buf sockput "USER "+user+"\n",0 if stat!0:sockclose 0:dialog stat repeat wait 1:sockcheck 0 if stat=0:break loop sockget buf,256,0 if stat!0:sockclose 0:dialog stat mes buf sockput "PASS "+pass+"\n",0 if stat!0:sockclose 0:dialog stat repeat wait 1:sockcheck 0 if stat=0:break loop sockget buf,256,0 if stat!0:sockclose 0:dialog stat mes buf sockput "STAT\n",0 if stat!0:sockclose 0:dialog stat repeat wait 1:sockcheck 0 if stat=0:break loop sockget buf,256,0 if stat!0:sockclose 0:dialog stat getstr a,buf,4,' ';メール数 mes buf sockput "QUIT\n",0 if stat!0:sockclose 0:dialog stat repeat wait 1:sockcheck 0 if stat=0:break loop sockget buf,256,0 if stat!0:sockclose 0:dialog stat mes buf mes ""+a+"通のメールが届いています。" sockclose 0



E.T

リンク

2015/2/11(Wed) 16:16:53|NO.67368

>さかさん
サンプルありがとうございます。
自分のID(YahooJAPAN)を入力して実行してみたのですがダイヤログには0と表示されます。
パスワードとIDはあってると思います。
http://hsp.tv/play/pforum.php?mode=pastwch&num=30044に書いてあった
BASE64というものを入力して見てもダメでした…



さか

リンク

2015/2/11(Wed) 18:20:33|NO.67373

自分もyahoo(pop.mail.yahoo.co.jp)でやってみましたが4件と出ますよ。
IDとPASSが違っていればエラーになるはずです。ちょっと変えてやってみてください。

以下は昔参考にさせてもらったHPです。
受信メーラのhspソースが出てます。hsp2なのでそのままでは動かないですが詳細な仕組み
はわかるのではないかと思います。



さか

リンク

2015/2/11(Wed) 18:28:14|NO.67374

urlを貼るのを忘れてしまいました。
以下です。
http://hsp.8m.com/



E.T

リンク

2015/2/11(Wed) 19:41:48|NO.67375

…すいません。
サーバーを入力し間違えてました…
  sockput "STAT\n",0
の部分でメール数を
取得していると自分で調べたらわかったのですがタイトル、本文、送信者など のコマンドがわかりません…



さか

リンク

2015/2/11(Wed) 22:39:28|NO.67379

そうですね、"STAT"で件数とサイズの取得です。
メールのタイトルや送信者、内容は"RETR "+メールID で取得します。
"STAT"と同様にsockputしてsockgetで取得してください。
その他のコマンドはpop3コマンドで検索すると出てきます。



E.T

リンク

2015/2/12(Thu) 14:26:24|NO.67381

RETRを追加して実行してみたのですが
+OK 4411 octets
X-Apparently-To: fyjcskgt@yahoo.co.jp via 183.79.100.170; Sat, 03 Jan 2015 00:34:14 +0900
X-YMailISG: LYSfuh0WLDs7G0CaN.tX4_q1dykHJMbaq_R5pf20S787tKjl
dipYmenS7NwNmZuRaOTh3NXyc1dqrFW0YtHr3eZYTTNIQbk2Bj1CuCWlsfJ1
phNhxQyftZFayHtSb30Iy
と表示されました。これは検索してみたところ

+OK xxx octets
最初のヘッダー行
   :
   :
本文の最後の行
.
となっているらしいのですがどれが本文かわかりません…

http://pc.nikkeibp.co.jp/article/NPC/20080321/296736/?rt=nocnt



さか

リンク

2015/2/13(Fri) 00:04:08|NO.67384

それで取得は出来てると思います。
文字が読めないのは漢字コードが違うからだと思うのですが、jisからsjis変換?
ちょっと時間がなくて。。。
調べてみてください。(^^;



skyblue

リンク

2015/2/13(Fri) 15:16:16|NO.67390

バッファがあふれている可能性があります。
それかNULLがあるので途切れているかです。
たいていのサーバは対応しているのでTOPコマンドがお勧めです。
TOPコマンドでヘッダーと本文混合と両方取得できます。
もしくは空行で本文とヘッダーは分割されています。
POP3の仕様でそういうふうに決まっています。

http://www.vector.co.jp/soft/winnt/prog/se301081.htmlにHSPプラグインがありますので
そちらもどうぞ

補足ですがhpiはHSP専用のDLLとか言うのを聞いた事があります。



E.T

リンク

2015/2/14(Sat) 23:58:33|NO.67414

できました!
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.