http://exwarp.com
ホーム
製品情報ページへ
ショッピングカートへ
ライブラリ価格表ページへ
メンバー登録ページへ
特定商取引法に基づく表記
テクニカルブログへ

RFC822ライブラリ
MIMEライブラリ
メールメッセージライブラリ
MIMEメディアタイプ変換ライブラリ
POP3メール受信ライブラリ
SMTPメール送信ライブラリ

ログイン

現在の状態:

ログインしていません。

メールアドレスを入力してください
パスワードを入力してください.
メンバー登録はこちらから

更新履歴

2007/9/2

Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。
■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。
■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。
■HideBccプロパティの追加。SMTPホストへのBCCヘッダーフィールドの送信を制限します。
製品版を購入いただいておりますユーザー様は無料でバージョンアップできます。

2007/7/12

Exwarp MailKit 1.0.352.*をリリースしました。スパムメールの受信時などに発生する「不正なdatetimeです。」例外を回避できます。 製品版をご購入いただいたユーザー様は無料でバージョンアップできます。

2007/5/8

VB.NET用のサンプルアプリケーションを公開しました。ソースコードが確認できます。非同期受信。メールのリスト表示機能が実装されています。 ダウンロードはこちらからどうぞ。

ブランド品ならココデカオウ
無料のSEO対策HTML+CSS自動作成ツール
無料一括相互リンク
英語が楽しくなるDG Book2

メール送受信ライブラリ - Exwarp MailKit

Exwarp MailKitを使えば、.NETの開発言語を使って誰でも簡単にメール送受信ソフトウェアが作れます。
さらに、Exwarp MailKitの豊富な機能がメール操作をより一層簡単にします。

Exwarp MailKit は、ASP.NETVB.NET,C#で記述された多くのアプリケーションに導入されており、低価格かつ高機能な点が高く評価されています。詳しくは、導入事例をご覧下さい。

VB.NETサンプルアプリケーション

2007/5/10以前のソースファイルにスレッド関連のバグがあるため、最新のソースファイルを再度ダウンロードして下さい。

ソースコードのダウンロード

開発環境:Visual Basic .NET 2005 Express Edition
Windows XP

最終更新日:2007/5/31
(気まぐれにバージョンアップします。)

Exwarp MailKitを使用したメール受信プログラムのソースをこちらからダウンロードできます。

  • POP3ホストからメールを非同期に受信してListViewコントロールにリスト表示します。
  • ListViewのアイテムをクリックするとメールの詳細が下部に表示されます。
  • 受信メールを保存して、起動時に受信済みメールがListViewに表示されます。
  • ListView上で右クリックすると保存メールの削除が可能です。

必ず添付のドキュメントをお読みください。
同梱のExwarp MailKitはトライアルバージョンですので、メールの受信は最大3件までとなります。

Exwarp MailKitが誇る 豊富なメール機能

メール
非同期送信
メール送信中でも他の処理が同時に行えます
メール
非同期受信
メール受信中でも他の処理が同時に行えます
添付ファイル
編集自在
リネーム/追加/削除/編集/作成が簡単にできます
マルチ送信
一度に複数のメールが送れます
MIME準拠
マルチパートメッセージの編集も驚くほど簡単です
自由に選べる
文字コード
iso-2022-jp以外の文字コードでメールが作成できます
多彩に本文形式
混在可能
Text以外の本文をいくつでも混在できます
B/Qエンコード
対応
メールヘッダーのB/Qエンコードやデコードが可能です
メールアドレス
検証機能
複雑なメールアドレスの妥当性をチェックできます
SMTP-AUTH
対応
PLAIN、LOGIN及びCram-MD5に対応します
PopBefore-
SMTP対応
たった2行のコードを加えるだけ
APOP認証
対応
パスワードを送信しないので安全です
TOPコマンド
対応
ヘッダーのみの受信もできます
eml形式
サポート
eml形式で保存/読出が可能です
機能追加
可能
機能を後から自由に追加できます
シンプルデザイン
初心者にもわかりやすい、簡単なインターフェースです
RFC2231にも対応
RFC2231形式のファイル名でも問題なく解析します
メールヘッダー
編集自在
全てのヘッダーを完全にコントロールできます
ソース保護
メッセージソースを可能な限りオリジナルのまま保護します
返信/転送メール
自動作成
返信メールや転送メールが簡単に生成できます
バイナリデータ
自動7Bit化
Base64、Quoted-Printableによる自動7Bit化機能
CLS 完全互換
.Netの様々な開発言語に対応します
POP3受信エラー
記録機能搭載
メール受信時のエラーログを取得できます
GAC対応
Global Assembly Cacheに登録できます

無料ダウンロード
最新バージョン:1.0.359.*
最新の体験版はこちら
MailKit紹介ページ
APIダウンロード
セットアップガイド
導入事例・利用者の声
メールメッセージ構成オブジェクト概説
メールメッセージ階層構造の概説
Q&A
バグ報告

月々¥42,000-の成果報酬型SEO対策
相互リンク募集中
PING送信サービス

exWarp Blog
サンプルコードの実行には、Exwarp MailKitが必要です。こちらから無料でダウンロードできます。
記事の一覧| 全表示
フィード RSS


Add to google

【質問】1件づつメールをサーバより削除する方法はどのようにするのでしょうか?

メールをどのタイミングで削除するのかにより、手順が異なりますが以下の2通りの場面について解説いたします。

■メールの受信と同時にメールをサーバーから削除する
この場合、Exwarp.Net.Pop3.Pop3ClientオブジェクトのReceiveAllMessages()メソッドを実行する際のパラメータ値にtrueを指定することで、メールの受信と同時に削除を実行できます。
詳しくはこちらの記事を参照ください。

■メールの受信とは別にサーバーからメールを削除する
この場合、こちらにカスタムオペレーションのソースコードを公開しておりますので、ご参考になってください。
本カスタムオペレーションを実行すると、メールサーバーからすべてのメールを1件ずつ削除することができます。削除するメールを判別しながら削除するなどの処理を実行したい場合は、ソースコードに必要な条件式を入力していただくことで対応可能です。
2008/02/16 17:08:05更新
カテゴリ:Exwarp MailKit マニュアル

【質問】1行の文字数を設定してMIMEエンコードしたメール本文を、Exwarp.Net.Mail.MailMessageオブジェクトを用いて送信できますか?

通常、メール本文にMIMEエンコードを行うことはありません。
メール本文は、Content-Typeヘッダーフィールドにcharsetが指定されている場合、その文字セットでエンコードされたバイト列で記述されます。
例外として、charsetで指定されている文字セットが8ビットエンコーディングの場合には、base64やquoted-printableという方法で7ビット化したバイト列を記述します。
ExwarpMailKitには現在のところ、本文の1行の文字列を調整する機能は実装しておりません。ただし、前述のbase64については、76文字を超えないように自動的に調整されます。
2008/01/27 14:07:01更新
カテゴリ:Exwarp MailKit マニュアル

【質問】サブミッションポート(port587)とSMTP AUTHを使った送信は行えますか?

Exwarp.MailKitに含まれるExwarp.Net.Smtpライブラリでは、送信ホストのポート番号を任意に変更することが出来ます。587番ポートを使用して送信するには、

[C#]
Exwarp.Net.Smtp.SmtpClient smtp = new Exwarp.Net.Smtp.SmtpClient(HOST_NAME,587);

[VB.Net]
Dim smtp As New Exwarp.Net.Smtp.SmtpClient(HOST_NAME,587)


のようにコンストラクタの2番目のパラメータに接続したいホストのポート番号を指定します。
SMTP_AUTHにつきましても、PLAIN,LOGIN,CRAM-MD5に対応しております。
ただし、TLSやSSLを利用した暗号化通信には対応しておりませんのでご注意ください。
2007/10/18 10:14:59更新
カテゴリ:Exwarp MailKit マニュアル

ExwarpMailKit1.0.359.*リリースのお知らせ

Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。

■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。

■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。

■HideBccプロパティの追加。SMTPホストへのBCCヘッダーフィールドの送信を制限します。

製品版を購入いただいておりますユーザー様
2007/09/02 16:28:32更新
カテゴリ:Information

メール受信後にPOP3サーバーからメールを削除する

メールの受信後にサーバーからメールを削除したい場合は,ReceiveAllMessages()メソッドに削除パラメータをわたす方法が最も簡単です。
【注意!】削除したメールは二度と元に戻りませんのでご注意ください。
[VB.NET]
client.Connect()
client.ReceiveAllMessages(True)
client.Close()

または、
client.Connect()
client.DeleteAfterReceive = True
client.ReceiveAllMessages()
client.Close()

ちなみに、RunCommand()メソッドを利用する場合は、次のようになります。
client.Connect()
client.DeleteAfterReceive = True
client.RunCommand("ReceiveAllMessages")
client.Close()
解説
clientは初期化済みのExwarp.Net.Pop3.Pop3Clientインスタンスを表します。

Exwarp.Net.Pop3.Pop3Client.ReceiveAllMessages()メソッドは、パラメータを1つ受け取ることができます。
このパラメータは、メールの受信後に受信したメールをサーバーから削除するかどうかのフラグを表し、
内部的には、Pop3Clinet.DeleteAfterReceiveプロパティの値を更新してから受信を実行します。

trueをセットすると、受信後にPOP3サーバーからメールを削除する処理が自動的に実行されます。デフォルトはfalseです。
ReceiveAllMessages()メソッドは、RunCommand("ReceiveAllMessage")のラッパーメソッドとして実装しているため、どちらの方法を採用しても動作に違いはありません。
2007/07/31 17:53:51更新
カテゴリ:Exwarp MailKit マニュアル

ExwarpMailKit1.0.352.*公開のお知らせ

Exwarp MailKit 1.0.352.*をリリースしました。
スパムメールの受信時などに発生する「不正なdatetimeです。」例外を回避できます。
製品版をご購入いただいたユーザー様は無料でバージョンアップできます。
2007/07/12 18:26:11更新
カテゴリ:Information

メールのメッセージソースを取得する。

RFCMessage及びその派生クラス(MIMEMessageMailMessage)にはMessageSourceプロパティが定義されています。このプロパティの値はByte型の配列ですが、このプロパティの値を取得したり更新したりすることでメッセージソースを簡単に操作できます。


[C#]
byte[] src = msg.MessageSource;
System.Diagnostics.Debug.WriteLine(System.Text.Encoding.ASCII.GetString(src));
[VB.Net]
Dim src() As Byte = msg.MessageSource
System.Diagnostic.Debug.WriteLine(System.Text.Encoding.ASCII.GetString(src))

[解説]

上記サンプルコードのmsgは、RFCMessageの派生クラスのインスタンスを表します。このインスタンスの作り方についてはこちらを参照してください。

MessageSourceプロパティの戻り値をByte型の配列(この場合src)で受け取ります。

取得したバイト列の内容をASCIIエンコーディングで文字列に変換しデバッグウィンドウに表示しています。これでバイト列のイメージが取得できます。ASCIIエンコーディングですから8ビット文字が出てくる場合正常に表示されません。文字化けします。

2007/07/07 12:31:36更新
カテゴリ:Exwarp MailKit マニュアル

メールの添付ファイルを削除する

メールメッセージに含まれる添付ファイルを削除するには、RemoveAttachmentカスタムオペレーションを使用します。今回はすべての添付ファイルを削除するサンプルを紹介します。

[C#]
object atts = mail.RunCommand("GetAttachments");
if(atts != null)
{
    foreach(object att in (System.Collections.IEnumerable)atts)
    {
        mail.RunCommand("RemoveAttachment",att);
    }
}
[VB.Net]
Dim atts() As Object = mail.RunCommand("GetAttachments")

If Not(atts Is Nothing) Then
    Dim att As Object
    For Each att In CType(atts,System.Collections.IEnumerable)
        mail.RunCommand("RemoveAttachment",att)
    Next
End If
解説

mailExwarp.Net.Mail.MailMessageのインスタンスを表します。このインスタンスの取得方法については、こちらを参照してください。

すべての添付ファイルを削除するために、まずGetAttachmentsカスタムオペレーションを使用して、削除対象となる添付メッセージの配列を取得します。この配列を列挙しながら、MailMessageRemoveAttachmentカスタムオペレーションを実行します。

RemoveAttachmentカスタムオペレーションは削除する添付メッセージを表すExwarp.Net.RFC.MIME.MIMEContentMessage型のパラメータを一つ受け取ります。今回はキャストせずにObject型のまま渡しています。

2007/06/21 11:43:06更新
カテゴリ:Exwarp MailKit マニュアル

POP3サーバーからメールを削除せずに新着メールを受信する

Exwarp MailKitのPop3ClientContextプロパティを使用すると、すでに受信済みのメールのUID(ユニークID)を保存することができます。
この機能を利用すると、POP3サーバーからメールを削除せずに、新着メールのみの受信を行なうことができます。
[C#]
Exwarp.Net.Pop3.Pop3Client pc = new Exwarp.Net.Pop3.Pop3Client("POP3_HOST");
pc.User = "POP3_USER";
pc.Pass = "POP3_PASS";
pc.Context = context;
pc.Connect();
pc.ReceiveAllMessages();
pc.Close();

[VB.Net]
Dim pc As New Exwarp.Net.Pop3.Pop3Client("POP3_HOST")
pc.User = "POP3_USER"
pc.Pass = "POP3_PASS"
pc.Context = context
pc.Connect()
pc.ReceiveAllMessages()
pc.Close()

[解説]
POP3_HOSTはPOP3ホスト、
POP3_USERはPOP3ホストへ接続するユーザー名、
POP3_PASSはPOP3ホストへ接続するパスワードをそれぞれ表す文字列定数です。
contextExwarp.Net.Pop3.Pop3Contextのインスタンスを表します。このクラスのインスタンスの生成方法については下部でさらに説明します。

通常のメール受信の前にExwarp.Net.Pop3.Pop3ClientオブジェクトのContextプロパティにExwarp.Net.Pop3.Pop3Contextオブジェクトをセットします。
ContextプロパティにPop3Contextオブジェクトがセットされている場合、Pop3Clientは、受信メールのUIDのリストをPop3ContextUniqueIdListプロパティに追加してゆきます。

Pop3Contextオブジェクトを毎回の受信の前にセットすることで、新着メールのみを受信することができますが、そのためにはPop3Contextオブジェクトをシリアル化(保存)して、次回の受信時に復元しなくてはいけません。
次にExwarp.Net.Pop3.Pop3Contextオブジェクトのシリアル化/デシリアル化を解説します。

以下の例では,contextという変数で表されるExwarp.Net.Pop3.Pop3ContextオブジェクトをC:\context.serというファイルに保存/復元します。(ファイル名及び拡張子はどんな文字列でも構いません。)

Exwarp.Net.Pop3.Pop3ContextクラスはSystem.SerializableAttribute属性が定義されています。ですからこのオブジェクトをフォーマッタを使用してシリアライズ/デシリアイズすることができます。
■シリアライズ方法(保存)
[C#]
System.IO.Stream st = new System.IO.FileStream("c:\\pop3context.ser",System.IO.FileMode.Create);
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
f.Serialize(st,context);
st.Close();

[VB.Net]
Dim st as New System.IO.FileStream("c:\pop3context.ser",System.IO.FileMode.Create)
dim f As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
f.Serialize(st,context)
st.Close()

[解説]
オブジェクトのシリアル化には、System.Runtime.Serialization.Formatters.Binary.BinaryFormatterクラスを使用します。シリアル化(保存)したいファイルのストリームを表すSystem.IO.Streamとシリアル化したいオブジェクト(context)をSerializeメソッドのパラメータにセットするだけでオブジェクトのシリアル化は完了です。

■デシリアライズ方法(復元)
[C#]
System.IO.Stream st = new System.IO.FileStream("c:\\pop3context.ser",System.IO.FileMode.Open);
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
Exwarp.Net.Pop3.Pop3Context context = (Exwarp.Net.Pop3.Pop3Context)f.Deserialize(st);
st.Close();

[VB.Net]
Dim st as New System.IO.FileStream("c:\pop3context.ser",System.IO.FileMode.Open)
dim f As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
Dim context As Exwarp.Net.Pop3.Pop3Context = f.Deserialize(st)
st.Close()

[解説]
オブジェクトの復元には、System.Runtime.Serialization.Formatters.Binary.BinaryFormatterクラスを使用します。デシリアイズ(復元)したいファイルのストリームを表すSystem.IO.StreamDeserializeメソッドのパラメータに返すと、ファイルから復元されたオブジェクトが返されます。

この方法でPOP3ホストからメールを削除せずに新着メールのみを取得することができます。
(注意)UIDの値が他のPOP3ホストと重複することがあり得るため、Pop3ContextはPOP3ホストごとに1ファイル作成するようにして下さい。


サンプルコード
[C#]
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
if(System.IO.File.Exists("c:\\pop3context.ser"))
{
  using(System.IO.Stream st = new System.IO.FileStream("c:\\pop3context.ser",System.IO.FileMode.Open))
  {
    context = (Exwarp.Net.Pop3.Pop3Context)f.Deserialize(st);
  }
}
else
{
  context = new Exwarp.Net.Pop3.Pop3Context();
}

Exwarp.Net.Pop3.Pop3Client pc = new Exwarp.Net.Pop3.Pop3Client("POP3_HOST");
pc.User = "POP3_USER";
pc.Pass = "POP3_PASS";
pc.Context = context;
pc.Connect();
pc.ReceiveAllMessages();
pc.Close();

using(System.IO.Stream st = new System.IO.FileStream("c:\\pop3context.ser",System.IO.FileMode.Create))
{
  f.Serialize(st,pc.Context);
}
2007/05/12 12:34:59更新
カテゴリ:Exwarp MailKit マニュアル

Exwarp.Net.Smtp.Extension.dllライブラリトライアウト版公開のお知らせ

複数のSMTPクライアントを使用して大量メールの並列送信が行なえるExwarp.Net.Smtp.CompoundSmtpClientが含まれるExwarp.Net.Smtp.Extension.dllを公開しました。
CompoundSmtpClientを使用するにはパスキーの取得が必要です。(スパムメール送信防止のためご協力お願いいたします)
パスキーの取得はこちらで行なえます。

メールを大量に送信するサンプルコードは次のようになります。
[C#]
Exwarp.Net.Smtp.CompoundSmtpClient client = new Exwarp.Net.Smtp.CompoundSmtpClient("HOST_NAME",10);
client.SetProperty("tryout_user","パスキーのID");
client.SetProperty("tryout_pass","パスキーのパスワード");
client.Connect();
client.SendReceive(MAILS);
client.Close();

解説
HOST_NAMEはSMTPホスト名を表す文字列。
MAILSは送信メールを表すSystem.Collections.IList型のコレクションです。

CompoundSmtpClientはコンストラクタに、ホスト名とプロセス数を受け取ります。この例では同じホストに10プロセスでメールを送信することになります。AddSmtpClient()メソッドを使用して、他のSMTPホストに接続することもできます。

メールの送信は通常どおりですが、トライアウトバージョンではパスキーを設定しなければ接続に失敗します。SetProperty()メソッドを使用してパスキーを設定します。

このライブラリをスパムメール送信に使用することは禁止します。大量のメールマガジンの送信などに使用して下さい。

Exwarp.Net.Smtp.Extension.dllのダウンロード
2007/05/06 18:31:27更新
カテゴリ:Exwarp MailKit マニュアル

本サイトで公開されるライブラリには著作権があります。
©exWarp 2006
All Rights Reserved.