The project of U-WA-
http://uwa.potetihouse.com/

Image .NET用メール送受信クラスライブラリ (TKMP.DLL)


戻る

・説明

VB.NET C#.NET 用のメール送受信クラスライブラリ
標準のライブラリには送信用はありますが、受信用が無いのでもっと簡単に利用できるように作成してみました
Version 2.0.0からSMTP認証に対応したメール送信も可能です。
VB.NET C#.NET用のリモートメールの簡単なサンプルを用意してあります

・特徴

  • .NET専用なので、クラスライブラリとして使用可能
  • アカウントと、メールデータを構造化したオブジェクトとして扱える
  • 受信部分とメール解析部分を分離しているので、生データを保存したり、メールファイルの解析のみも出来る
  • メール受信を非同期で行うことが可能
  • APOP対応
  • 認証SMTPでのメール送信が可能
  • マルチパートのメールを柔軟に作成できる
  • 暗号化通信 POP3 over SSL/TLS,SMTP over SSL/TLSに対応
  • IMAPプロトコルでのメールボックス操作が可能

・最新バージョン情報

バージョン
種別
作成日
動作確認環境
 
3.1.9
フリーウェア
2020/10/15
Microsoft .NET Framework 2.0以降  Visual Basic 2005以降,Visual C# 2005以降
Version 3.0.0から.NET 1.1での開発は終了し
.NET Framework 2.0以降専用となります。

・ダウンロード

ライブラリ単体 ImageTKMPDLL_3.1.9.zip 837KB HP

・使用条件

  • このプログラムはライセンスフリーで商用、非商用を問わず自由に使用及び再配布することが可能です。
  • 将来にわたり、このライブラリの使用は自由であり、対価を要求することはありません。
  • このプログラムの再配布を目的とする場合は、アーカイブされているすべてのファイルを一緒に扱ってください。
  • 使用するプログラムとセットで配布する場合は、実行に必要な最小限のファイルのみのでの配布が可能です。
  • 使用プログラムのドキュメントにこのライブラリを使用したことを記述する必要はありませんが、していただければ幸いです。
  • ライブラリを使用する開発者が、ライブラリの不具合を発見した場合、その報告を努力義務とします。

・Tips集

サンプルプログラム集を用意しました。
TKMP.DLL プログラミングTips

・資料

オンラインライブラリ
クラス図概要のPDFファイル
オブジェクト関係図
通信処理クラスの概要

・更新履歴

2020/10/15
Version 3.1.9
修正
・Base64デコード処理で不要文字の削除が行われていなかったのを修正
2017/02/15
Version 3.1.8
修正
・サーバーが返すメールの最大サイズが2GBを超えるとき接続時にエラーが発生する問題を修正
2015/10/23
Version 3.1.7
修正
・Content-TypeでMIME Bエンコーディングが使用されたときデコードに失敗することがあったのを修正
・メール作成時に複数行ヘッダが作成されるとタブコードが挿入される問題を修正
2015/09/02
Version 3.1.6
修正
・複数行ヘッダの先頭の空欄が無条件で除去されていたのを修正
・ヘッダのエンコードでエンコードワード間の空白を除去していなかったのを修正
2015/04/10
Version 3.1.5
修正
・マルチパートの最終セパレータ文字列の後に空白行が無いと解析に失敗していたのを修正
・IMAPで異なるメールボックスで同一のUIDを返すサーバーに対応
2014/08/21
Version 3.1.4
修正
・マルチパートのセパレータ文字列解析が前方一致で行っていた問題を修正
2013/08/28
Version 3.1.3
修正
・IMAPでメールボックス名の取得に失敗する問題を修正
・一部のIMAPサーバーでメールボックスUIDの取得に失敗していた問題を修正
変更
・メールボックス変更時にCLOSEコマンドを発行するように変更
2012/08/06
Version 3.1.2
修正
・サーバーとログオン失敗時に通信スレッドが開放されない問題を修正
2012/07/31
Version 3.1.1
修正
・サーバーとログオン失敗時に通信スレッドが開放されない問題を修正
2012/06/04
Version 3.1.0
追加
・IMAP Searchコマンドを追加
修正
・[IMAP]メールの削除時にエラーが発生する問題を修正
・[IMAP]FETCHコマンドのレスポンス解析を改善
・TKMP.Writer.MailWriterで連続してメールを作成するとMessageIDが同一になる問題を修正
2011/09/01
Version 3.0.1
修正
・マルチパートのセパレータ文字列の検出に失敗する問題を修正
2011/08/11
Version 3.0.0
追加
IMAPプロトコルによるメール受信機能を追加
2011/07/08
Version 2.4.21
修正
・通信中に発生した一部のエラーが例外として処理できない問題を修正
2010/12/08
Version 2.4.20
修正
・ヘッダ部分にTabコードがあるとき解析に失敗する問題を修正
・LISTコマンドのレスポンスが「-ERR」のとき、エラーと判定していなかった問題を修正
2010/03/02
Version 2.4.19
修正
・同期通信コマンド実行時に通信エラーが発生した時、例外を発生するように修正
2010/02/08
Version 2.4.18
修正
・KeepAliveが有効になっていると、接続に失敗した後でもNOOPコマンドを送信する問題を修正
2009/04/09
Version 2.4.17
修正
・マルチパートのセパレータ文字列の最後から2番目の文字が「-」のとき解析処理に失敗していたのを修正
2008/12/16
Version 2.4.16
修正
・メール送信時にあて先登録で例外が発生した場合、失敗したアドレスを例外のプロパティに追加されるように修正
2008/09/06
Version 2.4.15
修正
・TKMP.Writer.Header.HeaderEncodeで文字コードを指定すると正常にエンコードできなかったのを修正
・TKMP.Writer.Header.HeaderCollectionに文字コードを指定してヘッダーを追加するメソッドを追加
2008/06/28
Version 2.4.14
修正
・Base64のデコード処理で終端の文字を削除してしまう事がある不具合を修正
2008/03/26
Version 2.4.13
追加
・TKMP.Writer.MailWriterクラスに送信時に使用するメール検証を行わないようにするプロパティを追加
修正
・送信時に使用するメール検証をRFC2822に従うように修正
・非同期読み出しで受信済みデータを再度読み出す不具合の修正
2008/03/18
Version 2.4.12
修正
・Version 2.4.11でマルチパートのメール解析に失敗していたのを修正
2008/01/22
Version 2.4.11
修正
・セパレータから始まるマルチパートのメール解析に失敗していたのを修正
・LISTコマンドでサイズを正確に返さないサーバーでデータが受信できなかったのを修正
2008/01/10
Version 2.4.10
修正
・サイズが0バイトのメール受信に失敗す問題を修正
2007/11/02
Version 2.4.9
修正
・メール解析時にサブパートの最後に改行コードが追加される問題を修正
2007/10/25
Version 2.4.8
追加
・TKMP.Writer.MailWriterの処理用を抽象化するためにTKMP.Writer.IMailWriterを追加
2007/10/11
Version 2.4.7
修正
・PopClientクラスがログオン時手順で失敗したときにConnectedがTrueのままになる問題を修正
2007/08/19
Version 2.4.6
修正
・サブパートがJIS以外でエンコードしてあるときにMailReaderクラスのMainTextプロパティのデコードに失敗していたのを修正
2007/03/15
Version 2.4.5
修正
・サーバーからの長いレスポンスが正常に処理できないことがあったのを修正
2007/03/10
Version 2.4.4
修正
・通信中にタイムアウトが発生しやすい不具合を修正
2007/01/19
Version 2.4.3
修正
・TKMP.Writer.MailAddressCollectionクラスに登録できるメールアドレスの書式条件を修正
2006/12/15
Version 2.4.2
修正
・一度メール送信に失敗すると連続してメール送信が出来なかったのを修正
2006/11/30
Version 2.4.1
追加
・TKMP.Net.SmtpClientクラスにTimeOutIntervalプロパティを追加
修正
・コネクションがサーバーから切断されたときにタイムアウトが発生しないことがあったのを修正
2006/11/02
Version 2.4.0
追加
SSLを利用したPOP3s、SMTPsプロトコルに対応
修正
・TKMP.Writer.MailAddressCollectionクラスに登録できるメールアドレスの書式条件を修正
・SMTPのログオン方法の自動判別に失敗すことがあったのを修正
改善
・送受信処理の最適化
2006/10/27
Version 2.3.2
修正
・接続時のUIDLコマンドをメールが存在するときだけ行うように修正
2006/10/23
Version 2.3.1
修正
・添付ファイルのContent-Typeで[FileName]のパラメータがない場合に[Name]の値を返すように修正
2006/10/13
Version 2.3.0
改善
NET Framework 2.0版が別になりました
2006/09/05
Version 2.2.4
修正
・Shift-JISのメール本文を8-Bitでエンコードするとの最後の数バイトが送信されないことがあったのを修正
・Shift-JISのメール本文を8-Bitでエンコードすると送信時にエラーが発生していたのを修正
2006/08/10
Version 2.2.3
修正
・TKMP.Writer.TextPartで本文の"Content-Transfer-Encoding"を選択できるように修正
・添付ファイルの名称に長い日本語ご使用すると、エンコードで不要な改行が入るのを修正
2006/08/09
Version 2.2.2
修正
・TKMP.Writer.TextPartのコンストラクタでJIS以外を指定したときにヘッダ情報が変更されていなかったのを修正
・TKMP.Writer.TextPartでShift-JISで送信したときにヘッダのcharset情報が「sjis」になっていたのを修正
2006/07/26
Version 2.2.1
修正
・POP接続時でQUITコマンドを発行したときに通信メッセージのイベントが発生しないことがあったのを修正
・長いRFC2231形式の添付ファイルのファイル名のデーコードに失敗していたのを修正
2006/02/07
Version 2.2.0
追加
・添付ファイルのRFC2231形式のファイル名に対応
・SMTPサーバーから得られる送信可能なメールサイズを読み出すプロパティを追加
修正
・添付ファイルの名前をエンコードするときに終端の「"」がエンコードされていたのを修正
・送信メールを作成するときにメール全体とメインパートに同じヘッダがあると二重に出力されていたのを修正
・SMTPサーバーへ接続時にログオン処理が無い場合もEHLOコマンドを使用するように変更
・Message-ID作成時にローカルPCのNetBIOS名から「-」を取り除くように修正
改善
・TKMP.Writer.Header.HeaderStringクラスのエンコードメソッド外部から使用可能にした
2006/01/28
Version 2.1.1
修正
・TKMP.Net.SmtpClinetクラスのSendMailメソッドが通信異常時の例外を発生しなかったのを修正
改善
・TKMP.Writer.MultiPartクラスに内部のパートを削除するメソッドを追加
・TKMP.Writer.MultiPartクラスにインディクサでのパート読み出し機能を追加
・TKMP.Writer.IPartの継承クラスを作成するためにTKMP.Writer.Header.HeaderCollectionのコンストラクタをPublicへ変更
2005/12/27
Version 2.1.0
追加
・TKMP.Reader.Header.ContentTypeクラスに分割メール情報を読み出すプロパティを追加
修正
・TKMP.Net.PopBeforeSMTPクラスのコンストラクタで、ApopLogonの引数が機能していなかったのを修正
・APOP未対応のサーバーへAPOP認証を試みるとエラーが発生していたのを修正
・POPサーバーへ接続、切断を繰り返すと、待機スレッドがリークしていた問題を修正
2005/12/08
Version 2.0.0
追加
・SMTPプロトコルによるメール送信機能を追加
2005/10/31
Version 1.3.1
修正
・Receivedヘッダなどの複数のフィールドを持つヘッダがTKMP.Reader.Header.HeaderStringクラスから正常に読み出せなかったのを修正
2005/08/11
Version 1.3.0
修正
・テキストパートが存在しないメールでTKMP.Reader.MainTextを実行するとエラーが発生していたのを修正
改善
・ヘッダのデコード処理を事前に行なわずに、最初に要求されたときに行なうようにした
・ヘッダ情報のデコード時に文字コードを強制的に変更できるようにした
・Receivedヘッダなどを読む場合のために、各行の連結文字を指定できるようにした
・ヘッダデコード処理のメソッドを単独で読み出せるようにした
・冗長なコードを大幅に削除した
2005/06/25
Version 1.2.3
修正
・通信用のバックグラウンドスレッドの無駄な待ち時間を改善しました
2005/06/20
Version 1.2.2
修正
・ログオン処理クラスが再利用できないために、PopClientクラスの再接続時にエラーが発生していたのを修正
2005/05/24
Version 1.2.1
修正
・APOPでのログオン時のチャレンジコード検出に問題があったのを修正
・文字コードがEUCのメールがEUC-JPでエンコードされていなかったのを修正
2005/05/07
Version 1.2.0
追加
・本文のデコード時の文字コードを変更可能にした(文字化けメール対策)
・本文のデコード前のバイナリデータを読み出せるようにした(文字コード自動判別用)
修正
・TKMP.Reader.Header.HeaderStringクラスのEncodeDataプロパティが、常にエンコード処理をしていたのを、エンコード前の文字列があるときはそれを返すように変更
2005/03/24
Version 1.1.1
修正
・接続を維持するための自動NOOP送信が正常に動作していなかったのを修正
2005/01/06
Version 1.1.0
追加
・ヘッダーデータと本文の非同期読み出しをサポート
・接続を維持するために、自動的にNOOPコマンドを実行する機能を追加
・メールに付けた削除フラグをリセットする命令を追加 (RSETコマンド相当)
・通信ログを管理するクラスを追加(非同期実行時の処理を補助するため)
修正
・MailDataクラスのDeleteメソッドが実行結果にかかわらずtrueを返していたのを修正
変更
・非同期読み出しをサポートしたため、読み出し中のイベントと変数をヘッダー用と本文用に分けた
2004/10/14
Version 1.0.1
修正
・テキストファイルが添付されている時にデータが取り出せなかったのを修正
・日付解析で解析できないパターンがあったのを修正
2004/09/18
Version 1.0.0
情報
・公開

・その他

・業務で使用される場合は、各ベンダーが提供しているライブラリの使用をお勧めします
GrapeCity  Mail for .NET
Aster-world  メール受信クラス - AstPOP
DART  PowerTCP Mail for .NET
など

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/