|
|||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 現在の状態:ログインしていません。 メンバー登録はこちらから
2007/9/2Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。
■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。 ■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。 ■HideBccプロパティの追加。SMTPホストへのBCCヘッダーフィールドの送信を制限します。 製品版を購入いただいておりますユーザー様は無料でバージョンアップできます。 2007/7/12Exwarp MailKit 1.0.352.*をリリースしました。スパムメールの受信時などに発生する「不正なdatetimeです。」例外を回避できます。
製品版をご購入いただいたユーザー様は無料でバージョンアップできます。
2007/5/8VB.NET用のサンプルアプリケーションを公開しました。ソースコードが確認できます。非同期受信。メールのリスト表示機能が実装されています。
ダウンロードはこちらからどうぞ。
|
サンプルコードの実行には、Exwarp MailKitが必要です。こちらから無料でダウンロードできます。
![]() 【質問】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及びその派生クラス(MIMEMessageやMailMessage)には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 mailはExwarp.Net.Mail.MailMessageのインスタンスを表します。このインスタンスの取得方法については、こちらを参照してください。 すべての添付ファイルを削除するために、まずGetAttachmentsカスタムオペレーションを使用して、削除対象となる添付メッセージの配列を取得します。この配列を列挙しながら、MailMessageのRemoveAttachmentカスタムオペレーションを実行します。 RemoveAttachmentカスタムオペレーションは削除する添付メッセージを表すExwarp.Net.RFC.MIME.MIMEContentMessage型のパラメータを一つ受け取ります。今回はキャストせずにObject型のまま渡しています。 2007/06/21 11:43:06更新
カテゴリ:Exwarp MailKit マニュアル POP3サーバーからメールを削除せずに新着メールを受信する
Exwarp MailKitのPop3ClientのContextプロパティを使用すると、すでに受信済みのメールの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ホストへ接続するパスワードをそれぞれ表す文字列定数です。 contextはExwarp.Net.Pop3.Pop3Contextのインスタンスを表します。このクラスのインスタンスの生成方法については下部でさらに説明します。 通常のメール受信の前にExwarp.Net.Pop3.Pop3ClientオブジェクトのContextプロパティにExwarp.Net.Pop3.Pop3Contextオブジェクトをセットします。 ContextプロパティにPop3Contextオブジェクトがセットされている場合、Pop3Clientは、受信メールのUIDのリストをPop3ContextのUniqueIdListプロパティに追加してゆきます。 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.StreamをDeserializeメソッドのパラメータに返すと、ファイルから復元されたオブジェクトが返されます。 この方法で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. |
|||||||||||||||||||||||||||||||