2008/06/30

LAN メッセンジャを作りたいのその後

LAN 内の PC 同士でメッセージをやり取りするソフトを作りたいと思っている。
メッセージの閲覧や作成をする部分と、メッセージの送信や受信をする部分を、分離する仕様を考えている。前者はいわゆるメールソフト、後者はいわゆるメールサーバと同様の機能になる。
まずメールサーバを作り始めたが、何とか形になってきた。

このソフトは、一昨年の今頃も、その前の一昨年も作り掛けては中断している。
今回こそは、公開するところまで持っていけるかも。

サーバ部分ができてきたので、一旦、クライアント部分を作ることにする。

| | コメント (0) | トラックバック (0)

2008/06/22

LAN メッセンジャを作りたいの続き

LAN メッセンジャを作るために、メールサーバを作り始めた。
メールボックスの仕様も決められたので、改めて SMTP サーバの機能からコーディングしていこうと思う。

mdb ファイルを操作するプログラムは、これまで書いたことがない。
Delphi でデータベースを扱うにはどうしたらいいか、以前に調べたことがあるが、復習してみた。すると、こんなページもみつけた。

CodeGear Developer Network サイトマップDelphi / C++Builderによるマイグレーションを考慮したデータベースアプリケーション構築

更に、SMTP についても復習。こんなページを参考にした。

@ITインターネット・プロトコル詳説公開と隠ぺいのジレンマ「SMTP~前編」

| | コメント (0) | トラックバック (0)

LAN メッセンジャを作りたいの続き

LAN メッセンジャを作るために、メールサーバを作り始めた。何とかメールソフトと通信ができるようになった。ただし、内部でちゃんとメールボックスをみるのではなく、適当な数字で返答するようコーディングした。
いよいよ、メールボックスをきちんと管理できるようにしないといけない。メールデータは、メッセージごとに eml ファイルを保存するようにしようかと思っている。それでもインデックスは欲しいので、以前は TStringList を使って作ってみている。それだとメッセージ数が多くなるとちょっと不安なので、mdb ファイルくらいは使った方がいいのか。
mdb ファイルを操作するには、Windows に JET エンジンが必要。僕のメールソフトをインストールしたい PC の Windows に、JET エンジンがないと動作しない。
mdb ファイルを使用しているソフトを開発、配付しているサイトをみつけた。

電脳株通信データアクセスコンポーネント関連の詳細

電脳株通信はデーターベースにACCESSのデーターベースを利用している関係上、電脳株通信の動作にはJet4.0が必要です。
Jet4.0はWindowsXP/2000/MEでは標準で導入されていますが、それ以外の環境(WindowsNT4.0/98/95など)で電脳株通信を動かすのであれば、MicrosoftのサイトからJet4.0をダウンロードしインストールを行って下さい。

僕のメールソフトでも、これと同じでいいだろう。

| | コメント (0) | トラックバック (0)

2008/06/16

インターネットオプションの変更を制限したい

会社の後輩から、インターネットエクスプローラのオプションの変更を制限したいが、できるかと相談された。
「履歴」に表示する日数が、いつのまにか「0 日」に変更されてしまう、のだという。何だか怪しい奴がいるんだなあ (苦笑) 。
調べてみると、こんなページをみつけた。

パソコンFAQ ~ Windows のトラブル・疑問を解決!インターネットオプション レジストリの設定による制限

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel に DWORD値を作り、データを 1 にすると無効になります。
タブ 影響箇所 名前
全般 「ホーム ページ」枠内の各項目 HomePage
「インターネット一時ファイル」枠内の各項目 Settings
「履歴」枠内の各項目 History
「インターネット一時ファイル」の[設定] - 設定ダイアログ内の[ファイルの表示] [オブジェクトの表示] 以外の項目 Cache
[色] - 色ダイアログ内の各項目 Colors
[フォント] - フォントダイアログ内の各項目 Fonts
[言語] - 言語の優先順位ダイアログ内の各項目 Languages
[ユーザー補助] - ユーザー補助ダイアログ内の各項目 Accessibility
セキュリティ このゾーンのセキュリティのレベル SecChangeSettings
コンテンツ [オートコンプリート] - オートコンプリートダイアログ内の「フォーム」 FormSuggest
[オートコンプリート] - オートコンプリートダイアログ内の「パスワード」 FormSuggest Passwords
接続 [セットアップ] ボタン Connwiz Admin Lock
[セットアップ] ボタン以外の全項目 Connection Settings
[LAN の設定] ローカル エリア ネットワーク(LAN)の設定ダイアログ内の「自動構成」枠内の各項目 Autoconfig
プログラム 電子メール、ニュースグループ、インターネット通話 Messaging
カレンダー、連絡先一覧 CalendarContact
[Web の設定のリセット] ボタン ResetWebSettings
Internet Explorer の起動時に、通常使用するブラウザを確認する Check_If_Default
詳細設定 設定の全項目 Advanced

| | コメント (2) | トラックバック (0)

2008/06/15

Indy 10 を試してみるのその後

Delphi+Indy で作ったメールサーバに Delphi+Indy で作ったメールソフトで接続すると、なぜかエラーになる。そこで、Indy を最新版にしてみることにした。

これまで作っていたソースをコンパイルすると、エラー多発。Indy 10.0 と 10.1 とでは、プロパティやメソッドがかなり違うようだ。
ここまでバージョンごとに仕様を変えているとは、思ってもみなかった。
Indy のサイトから入手したサンプルも、Indy 10.0 用なのか 10.1 用なのか、よく分からない。
僕が以前に入手したメールサーバのサンプルは、10.1 用だったみたいだ。
Indy って、こういうところは使いづらいな。

修正を加えて、何とかコンパイルできるようにして、接続テスト。
……エラー (涙) 。何なんだ。

どこに問題があるのか探るために、既存の Delphi+Indy 製のメールソフトをやめて、TIdPop を使ったシンプルなサンプルプログラムを新規に作ってみることにした。
……動作 OK 。
これまで苦労してきたのは、何なんだ (汗) 。

| | コメント (0) | トラックバック (0)

Indy 10 を試してみるの続き

Delphi+Indy で作ったメールサーバに Delphi+Indy で作ったメールソフトで接続すると、なぜかエラーになる。そこで、Indy を最新版にしてみたが、それでもエラーは発生。
試してみたのは Indy 10.0.52 。これは実は最新ではないようだ。
最新なのは、現時点では 10.1.5 ……なのかな。バージョン番号が分からない (汗) 。
こちらのバージョンにすれば、解決する……かも。
今回は、こんな手順でインストールしてみた。

ftp://indy.fulgan.com/ あるいは http://indy.fulgan.com/ にアクセス。ZIP フォルダにある Indy10.zip をダウンロード。
解凍すると、たくさんフォルダがあるなあ。
Lib フォルダにバッチファイルがある。Fulld7.bat を実行してみる。
コンパイルが実行され、D7 フォルダが作られる。
このフォルダの中身を、Delphi の Lib フォルダにコピー。
続いて、Delphi を起動し、[コンポーネント] → [パッケージのインストール] 、[追加] で dclIndy70.bpl 、dclIndyCore70.bpl 、dclIndyProtocols70.bpl の順で追加。

Indy のウェブサイトでは、別の手順が書かれていた (汗) 。
とにかくインストールできた。

| | コメント (0) | トラックバック (0)

2008/06/10

Indy 10 を試してみる

Delphi+Indy で作ったメールサーバに Delphi+Indy で作ったメールソフトで接続すると、なぜかエラーになる。
僕はこれまで、Delphi 7 に標準の Indy 9 を使ってきたが、Indy の最新バージョンは 10 。Indy 10 なら、修正されていて、こんな不具合が出ないかも……なんて思った。

こんなページを参考にして、Indy 10 をインストールしてみた。

KENCH's Open The Source - DELPHI de Indy インストール -

Delphi Indy インストール (://URLFAN)

これまで Indy 9 で作っていたソースをコンパイルすると、エラー多発。Indy 9 と 10 とでは、同じ TIdPOP3Server クラスでもプロパティやメソッドがかなり違う。下位互換性はあまり考慮していないみたいだ。

修正を加えて、何とかコンパイルできるようにして、接続テスト。
……エラー (涙) 。エラー発生箇所が変わったけれど。

| | コメント (0) | トラックバック (0)

2008/06/01

LAN メッセンジャを作りたいの続き

LAN メッセンジャを作るために、メールサーバを作り始めた。SMTP サーバの機能が実装できたのに続いて、POP サーバの機能もコーディングできた。

こんなページを参考にした。

@ITインターネット・プロトコル詳説ラスト・ワン・ホップ プロトコル「POP3」

とりあえずは、STAT 、LIST 、TOP 、RETR などのコマンドに対して、内部でちゃんとメールボックスをみるのではなく、適当な数字で返答するようコーディングした。

いつも使っているメールソフトから接続してみる。ちゃんとメールを受信できた。素晴らしい。
続いて、Indy のウェブサイトで入手したサンプルのメールソフトでも接続してみる。……ログインするところでエラー発生 (汗) 。
通常のメールソフトでは OK なのに、なぜ?

Delphi+Indy 製のメールソフトがよくないのか。
でも、このメールソフトで ISP のメールサーバに接続してみると、全く問題なく動作する。Delphi+Indy 製のメールサーバにアクセスすると NG だ。
Delphi+Indy 製のメールサーバとメールソフトの相性が悪いって、どういうことだ。

| | コメント (0) | トラックバック (0)

2008/05/31

LAN メッセンジャを作りたいの続き

LAN メッセンジャを作るために、メールサーバを作り始めた。いいサンプルが入手できたので、コーディングできている。
サンプルでは Indy 10 を使用しているが、僕は Delphi 7 に標準の Indy 9 を使っている。同じ Indy でも随分と仕様が異なっていて、移植するのに苦労した。

まず、SMTP サーバの機能が実装できた。メールソフトから接続してメールを送信すると、ちゃんと受信するし、リレーもできる。なかなかいいんじゃないの。

迷っているのは、メールボックスの仕様。
入手したサンプルでは、mdb ファイルを使っていた。メッセージの内容も mdb ファイルに保存している。
僕は、メッセージごとに eml ファイルを保存するようにしようかと思っている。それでもインデックスは欲しいので、以前は TStringList を使って作ってみている。それだとメッセージ数が多くなるとちょっと不安なので、mdb ファイルくらいは使った方がいいのか。

これを考えるのは後回しにして、まずは続いて POP サーバの機能を作ってみようと思う。

| | コメント (0) | トラックバック (0)

2008/05/26

この感触

朝、胸が締めつけられるような感触がある。
会社にいかなくてはいけないと思うと、こんなふうに感じるのだろう。
今日は体調が悪いことにして会社を休むと決めたら、きっとこの感触はなくなるのだと思う。
いつまでこの感触とつき合わなくてはいけないのだろう。
原因は分かっている。でも、自分の力では解消できない。
だったら、その場から逃げるのがいいのか。
慣れることができると、ある人がいう。そうなんだろうか。慣れるとしても、それはいつのことか。

| | コメント (0) | トラックバック (0)

«LAN メッセンジャの開発を再開