ツイートする このエントリーを含むはてなブックマーク [雑記]

無限ループ問題解決策 / 2009-02-28 (土)

少し前に解決したと言っていた起動時の読み込み無限ループ問題のちゃんとした
解決策が出来たので実装してテストを行ってうまく動くことを確認しました。

詳しいコードはバイナリ版と同時に公開予定のソースコード版の方を見てもらえば
分かるとは思うのですが、旧バージョンでは送信メールの打ち方によっては
本文の最後にデータの区切り文字がついてしまうというバグが存在しているため
その状態のデータを作ってしまうと次の起動時にそのメールのせいでデータが無限
ループに陥ってしまう問題を抱えていましたが、そうなってしまっているデータを
読み込んでもちゃんと読み込んでくれるように修正しました。

ただ、現行のメールデータをそのまま1.02に読み込ませようとしてもおかしくなるので
今回添付するメールデータ変換ツールでデータを変換して移行するという形に
なりますので、1.01のメールデータをそのまま1.02本体に入れないでください。

もう1つ修正したものとして、数日前にはうまく動かなかった暗号化機能を追加しました。
最初に見ていたMSDNのズバリ10行ではデータが合わないというエラーで悩んでいて
どうすれば良いかと考えていましたが、その後プログラムの参考サイトとして
使っているどぼんの.NET Tipsにある文字列の暗号化/復号化コードをベースに
サンプルプログラムを作って実行し、やりたいことがうまく動いてくれたので
例外処理(1.01からの移行後最初の実行で発生するため)を追加してAk@Ne!に組み込みました。

1.02で組み込みたかったことはひとまず組み込んだつもりですが、だいぶバグつぶしと
機能追加を行ったので、前回の文末にも書いた通り1.1としてリリースするかもしれません。


ツイートする このエントリーを含むはてなブックマーク [雑記]

不具合修正完了 / 2009-02-26 (木)

今日は旧バージョンからどうするか悩んでいた添付ファイル付きメールの
返信時のリアクションの修正と、HTMLメールのタグ抜き追加項目部分を
作成するというバグつぶし作業でした。

添付ファイル付きメールに関しては現状BASE64エンコードそのままの添付データが
くっついたままの状態で返信される仕様になっていますが、それを今回の修正で
本文だけ返信時に付けるように修正を施しました。

HTMLメールの方はHTMLタグ抜き処理を行ってからその本文を添付する形にしてあります。
もちろんAppleのメールみたいに本文とHTMLパートが分かれているメールに関しては
本文を返信用の本文として付けるようにしてあります。

HTMLタグ抜き処理はベタ書きしていたのを関数にして、どこのプロシージャからでも
呼び出せる形に変更して、使いやすいものにしました。

ただ初期のコードだと特殊文字(&記号など)の事を考慮していなかったので、追加で
よくメール本文に登場する特殊文字の置き換えと、改行タグなどで大幅に間延び
してしまっている行を切り詰める処理も追加しました。

ただこれだけではラグナロクオンラインのメールマガジンには判定条件が足りなかったので
関数の引数にメールヘッダを追加してメール本文にContent-Typeのcharset指定が
ないメールでも対応できるようにはしました。

とりあえずVersion 1.02として作成していますが、もしかしたら1.1としてリリースを
する可能性も今回の修正で出てきたかなぁ・・・と思っています。

Ak@Ne! Version 1.02のデモ(添付付きメールの返信)

Ak@Ne! Version 1.02のデモ(タグ抜き処理その2)


ツイートする このエントリーを含むはてなブックマーク [雑記]

SplitContainerの問題点? / 2009-02-24 (火)

今日はメールの新規作成画面のテキスト編集機能(メモ帳並)の修正を
行っていたのですが、まずぶち当たってしまったのが複数コントロールの
制御の仕方というので、this.ActiveControlというプロパティで取得
出来る事をいろんなサイトを探して見つけ、コードを実装してみました。

しかしメニューボタンをクリックしても全く反応がなくて、どうしてだろうと
デバッグをかけてみると、本来アクティブになっているテキストボックスが
取得できるところが値にはSplitContainerが返るだけでテキストボックスを
取得できていないという状態になっていました。

今度はthis.ActiveControlとSplitContainerをキーワードとして検索してみると
探しいてるものそのもののコーディングがあったのでそれを使って実行してみたら
問題なく私のやろうとしていた内容ができてうれしかったです。

基本的な流れとしてはControl変数を作ってそこにthis.ActiveControlを格納して
そのコントロールがSplitContinerであることをハンドリングして、さらに
SplitContinerの中にあるActiveControlを最初に作ったContrl変数に格納して
あげればSplitContiner上にあるコントロールを取得することができます。
あとは各コンポーネント(今回はTextBox)の型に変えてあげればOKです。

現在テスト版nMail.dllにおいて不具合が発生しているためメール受信とか
表示系の部分には手を入れることができないのですが、もう少し表示部分には
手を加えたいかなぁ・・・って思っています。

Ak@Ne! Version 1.02の不具合?(nMail.dllの不具合だそうです)


ツイートする このエントリーを含むはてなブックマーク [雑記]

暗号化/復号化がうまくいかない / 2009-02-21 (土)

実験で暗号化/復号化の機能を追加しようとコードへMSで公開されている
暗号化と復号化のコードを入れて試してみたけれど、なぜか復号化時に
「データが正しくありません」というエラーが出てしまい、それに関する
コードを全部削除してしまいました。

本当はこれをちゃんと実装してセキュリティ面を向上させようと思っているの
ですが、そのコード自体が.NET Framework 1.1用であることなどいろいろと
問題があるみたいなのと、暗号化/復号化に関してあまり良いC#のサンプルが
ないからちょっと困っているという感じです。

昨日の夜新たに1.02へtext/html形式のメールに対しての修正をしました。
Becky!などではおなじみのHTMLタグ抜きの文字を出力できるように変更しました。
今までのだとタグがそのまま見えてかなりかっこが悪いので、付けてみた機能です。

まだスプラッシュウィンドウはちょっと保留なのですが、付けるかどうかは今のところ
気分次第かなぁ・・・といったところです。

Ak@Ne! Version 1.02のデモ(text/htmlのタグ抜き)


ツイートする このエントリーを含むはてなブックマーク [雑記]

Ak@Ne! 1.02の公開が見えてきました / 2009-02-17 (火)

ここの所開発を再開したAk@Ne!の最新バージョンである1.02公開の
目処が立ってきたというところまで来ました。

何度かテスト中に遭遇してしまったソフト沈黙の謎がやっと
解決して、重くなりやすい起動時のファイル読み込みや
終了時のデータファイル作成の所で引きずられることが
多かったので、その部分をスレッド化して実行するという
方式にしてみました。

さらに今回の一番の問題点となっていたHTML文書の添付された
Appleなどのメールマガジンの文字化け対策の大幅な修正と
今までプログラム上で許してなかった受信メール以外の
フォルダに格納されたメールをファイルとして取得できるように
変更したり、送信メールの添付ファイル一覧も見れるように
修正してあげたりと・・・マイナーバージョンアップで
良いのかなぁ・・・っていう内容です。

今回見合わせたスプラッシュウィンドウやCCやBCCの追加は
次のバージョンで実装しようかなぁ・・・という予定です。

だだライブラリの正式リリースが決まっていないので・・・
気が変わってスプラッシュウィンドウまではつけちゃうかもしれません。

Ak@Ne! Version 1.02のデモ(Appleのメールもちゃんと読めます)