<?xml version="1.0" encoding="utf-8" ?>
<feed version="0.3" xml:lang="ja" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"><title>メール</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/" /><modified>2008-07-21T16:40:13+09:00</modified><tagline>主に、メール送受信ライブラリを紹介します。各種ソフトウェア、PHPコンテンツ制作、SEO対策もお任せください。</tagline><generator url="http://jugem.cc/">JUGEM</generator><entry><title>Exwarp MailKit 1.0.406.*リリースのお知らせ</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=815537" /><id>http://blog.exwarp.com/?eid=815537</id><issued>2008-07-21T16:40:11+09:00</issued><modified>2008-07-21T07:40:11Z</modified><created>2008-07-21T07:40:11Z</created><summary>ExwarpMailKit1.0.406.*をリリースいたしました。
主な変更点は次のとおりです。
■Exwarp.Net.RFC.MIME.MIMETransform.SafeModeプロパティ(STATICプロパティ)を追加しました。これは一部のSMTPサーバーがメールのリレー時に?=の後ろに強制的にホワイトスペースを追加す...</summary><author><name>master</name></author><dc:subject>information</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[ExwarpMailKit1.0.406.*をリリースいたしました。<br />
主な変更点は次のとおりです。<br />
■Exwarp.Net.RFC.MIME.MIMETransform.SafeModeプロパティ(STATICプロパティ)を追加しました。これは一部のSMTPサーバーがメールのリレー時に?=の後ろに強制的にホワイトスペースを追加する仕様に対処するために使用します。上記プロパティをTrueに設定した場合、ASCII文字列も強制的にMIMEエンコードして?= =?が出現しなくなります。<br />
■Exwarp.Net.Mail.MailOperations.GetAttachmentsOperationクラスの仕様を一部修正いたしました。<br />
これは一部のメールエージェントが本文なしのメールを送信してきた場合でも添付ファイルの取得を可能にするためです。本仕様変更により、Content-Typeがmultipart/mixedであり、サブコンテンツにtext/*が含まれない場合でもGetAttachmentsカスタムオペレーションで添付ファイルを取得できるようになります。]]></content></entry><entry><title>【質問】メール受信において稼動状況をログファイルに出力したいのですが、本ライブラリでは可能ですか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=711777" /><id>http://blog.exwarp.com/?eid=711777</id><issued>2008-03-04T18:32:42+09:00</issued><modified>2008-03-04T09:33:57Z</modified><created>2008-03-04T09:32:42Z</created><summary>現状では、直接ログを出力する機能は本ライブラリに実装されておりませんが、受信ロジックは自由に拡張したり書き換えたりすることができますので、ログを出力するロジックを追加した受信処理を実装することは可能です。
カスタム受信のサンプルはこちらに参考にできるコ...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[現状では、直接ログを出力する機能は本ライブラリに実装されておりませんが、受信ロジックは自由に拡張したり書き換えたりすることができますので、ログを出力するロジックを追加した受信処理を実装することは可能です。<br />
カスタム受信のサンプルは<a href="http://exwarp.com/member/useroperations.html">こちら</a>に参考にできるコード(C#)を公開しております。]]></content></entry><entry><title>【質問】１件づつメールをサーバより削除する方法はどのようにするのでしょうか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=696494" /><id>http://blog.exwarp.com/?eid=696494</id><issued>2008-02-16T17:03:12+09:00</issued><modified>2008-02-16T08:04:49Z</modified><created>2008-02-16T08:03:12Z</created><summary>メールをどのタイミングで削除するのかにより、手順が異なりますが以下の２通りの場面について解説いたします。

■メールの受信と同時にメールをサーバーから削除する
この場合、Exwarp.Net.Pop3.Pop3ClientオブジェクトのReceiveAllMessages()メソッドを実行する際の...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[メールをどのタイミングで削除するのかにより、手順が異なりますが以下の２通りの場面について解説いたします。<br />
<br />
■メールの受信と同時にメールをサーバーから削除する<br />
この場合、Exwarp.Net.Pop3.Pop3ClientオブジェクトのReceiveAllMessages()メソッドを実行する際のパラメータ値にtrueを指定することで、メールの受信と同時に削除を実行できます。<br />
詳しくは<a href="http://blog.exwarp.com/?eid=492440">こちら</a>の記事を参照ください。<br />
<br />
■メールの受信とは別にサーバーからメールを削除する<br />
この場合、<a href="http://exwarp.com/member/useroperations.html">こちら</a>にカスタムオペレーションのソースコードを公開しておりますので、ご参考になってください。<br />
本カスタムオペレーションを実行すると、メールサーバーからすべてのメールを1件ずつ削除することができます。削除するメールを判別しながら削除するなどの処理を実行したい場合は、ソースコードに必要な条件式を入力していただくことで対応可能です。]]></content></entry><entry><title>【質問】1行の文字数を設定してMIMEエンコードしたメール本文を、Exwarp.Net.Mail.MailMessageオブジェクトを用いて送信できますか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=677132" /><id>http://blog.exwarp.com/?eid=677132</id><issued>2008-01-27T14:05:26+09:00</issued><modified>2008-01-27T05:05:26Z</modified><created>2008-01-27T05:05:26Z</created><summary>通常、メール本文にMIMEエンコードを行うことはありません。
メール本文は、Content-Typeヘッダーフィールドにcharsetが指定されている場合、その文字セットでエンコードされたバイト列で記述されます。
例外として、charsetで指定されている文字セットが8ビットエンコ...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[通常、メール本文にMIMEエンコードを行うことはありません。<br />
メール本文は、Content-Typeヘッダーフィールドにcharsetが指定されている場合、その文字セットでエンコードされたバイト列で記述されます。<br />
例外として、charsetで指定されている文字セットが8ビットエンコーディングの場合には、base64やquoted-printableという方法で7ビット化したバイト列を記述します。<br />
ExwarpMailKitには現在のところ、本文の1行の文字列を調整する機能は実装しておりません。ただし、前述のbase64については、76文字を超えないように自動的に調整されます。]]></content></entry><entry><title>【質問】特定の「件名」のメッセージだけを取得するには？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=568150" /><id>http://blog.exwarp.com/?eid=568150</id><issued>2007-10-24T12:34:49+09:00</issued><modified>2007-10-24T03:35:46Z</modified><created>2007-10-24T03:34:49Z</created><summary>特定の件名が含まれるメッセージを受信するには、カスタム受信処理を行う必要があります。
下記の要領でカスタム受信を行います。

■POP3ホストへ接続
■ログイン認証
■STATコマンドの送信とメール件数の取得

◇すべてのメールに対して次の処理を繰り返す。
■TOPコ...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[特定の件名が含まれるメッセージを受信するには、カスタム受信処理を行う必要があります。<br />
下記の要領でカスタム受信を行います。<br />
<br />
■POP3ホストへ接続<br />
■ログイン認証<br />
■STATコマンドの送信とメール件数の取得<br />
<br />
◇すべてのメールに対して次の処理を繰り返す。<br />
■TOPコマンドを使用してそれぞれのメールのヘッダーを取得<br />
■受信したいSubjectの場合は、RETRコマンドを使用してメールメッセージの取得<br />
■必要ならDELEコマンドを使用して受信メールの削除<br />
◇繰り返し終わり<br />
<br />
■QUITコマンドを送信してログオフ<br />
<br />
カスタム受信のサンプルは<a href="http://exwarp.com/member/useroperations.html">こちら</a>を参照してください。]]></content></entry><entry><title>【質問】メールサーバーから受信メールを取得した際、ウイルスメールなどの対策は？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=568142" /><id>http://blog.exwarp.com/?eid=568142</id><issued>2007-10-24T12:27:16+09:00</issued><modified>2007-10-24T03:27:15Z</modified><created>2007-10-24T03:27:16Z</created><summary>ExwarpMailKitを使用してメールを受信する際のウイルスメール対策などは特に用意されていません。

メールメッセージは、通常単なる7ビットのテキストとして受信されますので、受信処理だけでウイルスに感染することはありませんが、バイナリファイルに展開するなどの処...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[ExwarpMailKitを使用してメールを受信する際のウイルスメール対策などは特に用意されていません。<br />
<br />
メールメッセージは、通常単なる7ビットのテキストとして受信されますので、受信処理だけでウイルスに感染することはありませんが、バイナリファイルに展開するなどの処理が実行される場合には、問題が発生する可能性があります。<br />
<br />
それで、ウイルスメールの可能性があると思われるメールについては、以下の処理を避けるなどしてウイルスメール対策を講じることが出来ます。<br />
<br />
■mail.RunCommand("SaveBinariBody",PATH)の使用<br />
■mail.BinaryBodyプロパティの参照<br />
<br />
上記、２点に共通して実行される処理は、BinaryBodyプロパティが参照されることです。<br />
BinaryBodyプロパティを参照すると7ビットのテキストから8ビットのバイナリデータに変換されるため、メモリ上にプログラムの実体が展開されます。この場合、ウイルスプログラムが実行される可能性があります。<br />
<br />
BinaryBodyプロパティが参照されるまでは、7ビットのテキストのままですので問題はありません。<br />
]]></content></entry><entry><title>【質問】サブミッションポート（port587）とSMTP AUTHを使った送信は行えますか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=561027" /><id>http://blog.exwarp.com/?eid=561027</id><issued>2007-10-18T10:14:57+09:00</issued><modified>2007-10-18T01:13:30Z</modified><created>2007-10-18T01:14:57Z</created><summary>Exwarp.MailKitに含まれるExwarp.Net.Smtpライブラリでは、送信ホストのポート番号を任意に変更することが出来ます。587番ポートを使用して送信するには、

[C#]
Exwarp.Net.Smtp.SmtpClient smtp = new Exwarp.Net.Smtp.SmtpClient(HOST_NAME,587);

[VB.Net]
Dim ...</summary><author><name>master</name></author><dc:subject>information</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[Exwarp.MailKitに含まれるExwarp.Net.Smtpライブラリでは、送信ホストのポート番号を任意に変更することが出来ます。587番ポートを使用して送信するには、<br />
<br />
<div class="code">[C#]<br />
Exwarp.Net.Smtp.SmtpClient smtp = new Exwarp.Net.Smtp.SmtpClient(HOST_NAME,587);<br />
</div><br />
<div class="code">[VB.Net]<br />
Dim smtp As New Exwarp.Net.Smtp.SmtpClient(HOST_NAME,587)</div><br />
<br />
のようにコンストラクタの２番目のパラメータに接続したいホストのポート番号を指定します。<br />
SMTP_AUTHにつきましても、PLAIN,LOGIN,CRAM-MD5に対応しております。<br />
ただし、TLSやSSLを利用した暗号化通信には対応しておりませんのでご注意ください。]]></content></entry><entry><title>ExwarpMailKit1.0.359.*リリースのお知らせ</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=519298" /><id>http://blog.exwarp.com/?eid=519298</id><issued>2007-09-02T16:27:45+09:00</issued><modified>2007-09-02T07:27:45Z</modified><created>2007-09-02T07:27:45Z</created><summary>Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。
■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。
■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフ...</summary><author><name>master</name></author><dc:subject>information</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[<b>Exwarp MailKit 1.0.359.*</b>をリリースいたしました。本バージョンには以下の変更点があります。<br><br />
■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。<br/><br />
■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。</br><br />
■HideBccプロパティの追加。SMTPホストへのBCCヘッダーフィールドの送信を制限します。<br/><br />
製品版を購入いただいておりますユーザー様は無料でバージョンアップできます。]]></content></entry><entry><title>【解決】バグ報告：非同期スレッドで発生する例外がキャッチできない。</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=519294" /><id>http://blog.exwarp.com/?eid=519294</id><issued>2007-09-02T16:23:31+09:00</issued><modified>2007-09-02T07:24:54Z</modified><created>2007-09-02T07:23:31Z</created><summary>詳細非同期スレッド（Exwarp.Net.AbstractNetClientクラス内のコールバック関数）内で発生する例外がメインスレッドに引き渡されないために、メインスレッドでエラーをキャッチできずにアプリケーションが強制終了してしまいします。
確認された日付2007/8/24
アセンブ...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[<p><strong>詳細</strong>非同期スレッド（Exwarp.Net.AbstractNetClientクラス内のコールバック関数）内で発生する例外がメインスレッドに引き渡されないために、メインスレッドでエラーをキャッチできずにアプリケーションが強制終了してしまいします。<p><br />
<p><strong>確認された日付</strong>2007/8/24</p><br />
<p><strong>アセンブリ名</strong>Exwarp.Net.dll</p><br />
<p><strong>バージョン</strong>1.0.352.*以前のすべてのライブラリ</p><br />
<p><strong>種類</strong>バグ</p><br />
<p><strong>状態</strong>次期バージョンにて修正済み</p><br />
<p><strong>対処</strong>1.0.359.*以降のバージョンにバージョンアップしてください。</p>]]></content></entry><entry><title>【質問】SMTPでデータ受信が行なえますか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=513671" /><id>http://blog.exwarp.com/?eid=513671</id><issued>2007-08-25T22:49:52+09:00</issued><modified>2007-08-25T13:49:52Z</modified><created>2007-08-25T13:49:52Z</created><summary>SMTPは、メール送信のためのプロトコルですので、「データ受信」が「メール受信」という意味でしたら、POP3プロトコルを使用する必要があります。
Exwarp MailKitにはPOP3クライアントも含まれておりますので、こちらを利用してメール受信プログラムは簡単に実装できます...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[SMTPは、メール<u>送信</u>のためのプロトコルですので、「データ受信」が「メール受信」という意味でしたら、POP3プロトコルを使用する必要があります。<br />
Exwarp MailKitにはPOP3クライアントも含まれておりますので、こちらを利用してメール受信プログラムは簡単に実装できます。<br />
<br />
Exwarp MailKitには、SMTPクライアントも含まれておりますが、あくまでSMTPプロトコルの枠内でのデータ受信となりますので、独自のメッセージを送受信することは出来ません。]]></content></entry><entry><title>【質問】購入した際に使い方及びサンプルはありますか？</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=513666" /><id>http://blog.exwarp.com/?eid=513666</id><issued>2007-08-25T22:45:01+09:00</issued><modified>2007-08-25T13:45:01Z</modified><created>2007-08-25T13:45:01Z</created><summary>お客様から最も問い合わせの多い質問が「購入した製品版には添付ドキュメントがありますか？」です。

大変申し訳ござえいませんが、現状では添付ドキュメントなどは準備いたしておりません。
その代わりに、お客様からの直接のご質問にサンプルコードなどを提示しつつ...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[お客様から最も問い合わせの多い質問が「購入した製品版には添付ドキュメントがありますか？」です。<br />
<br />
大変申し訳ござえいませんが、現状では添付ドキュメントなどは準備いたしておりません。<br />
その代わりに、お客様からの直接のご質問にサンプルコードなどを提示しつつお答えさせていただいております。<br />
また、本ブログ上でもお客様からのご質問があった内容をサンプルコードを交えて随時投稿しております。<br />
お客様には大変ご不便とご迷惑をおかけしておりますが、ご理解いただきますようよろしくお願い申し上げます。]]></content></entry><entry><title>メールの受信後にサーバーから削除する</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=492440" /><id>http://blog.exwarp.com/?eid=492440</id><issued>2007-07-31T17:44:01+09:00</issued><modified>2007-07-31T08:52:21Z</modified><created>2007-07-31T08:44:01Z</created><summary>メールの受信後にサーバーからメールを削除したい場合は,ReceiveAllMessages()メソッドに削除パラメータをわたす方法が最も簡単です。
【注意！】削除したメールは二度と元に戻りませんのでご注意ください。
[VB.NET]
client.Connect()
client.ReceiveAllMessages(Tru...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[メールの受信後にサーバーからメールを削除したい場合は,<strong>ReceiveAllMessages()</strong>メソッドに削除パラメータをわたす方法が最も簡単です。<br />
【注意！】削除したメールは二度と元に戻りませんのでご注意ください。<br />
<div class="code">[VB.NET]<br />
client.Connect()<br />
client.ReceiveAllMessages(True)<br />
client.Close()<br />
<br />
または、<br />
client.Connect()<br />
client.DeleteAfterReceive = True<br />
client.ReceiveAllMessages()<br />
client.Close()<br />
<br />
ちなみに、RunCommand()メソッドを利用する場合は、次のようになります。<br />
client.Connect()<br />
client.DeleteAfterReceive = True<br />
client.RunCommand("ReceiveAllMessages")<br />
client.Close()<br />
</div>解説<br />
<strong>client</strong>は初期化済みの<strong>Exwarp.Net.Pop3.Pop3Client</strong>インスタンスを表します。<br />
<br />
<strong>Exwarp.Net.Pop3.Pop3Client.ReceiveAllMessages()</strong>メソッドは、パラメータを1つ受け取ることができます。<br />
このパラメータは、メールの受信後に受信したメールをサーバーから削除するかどうかのフラグを表し、<br />
内部的には、<strong>Pop3Clinet.DeleteAfterReceive</strong>プロパティの値を更新してから受信を実行します。<br />
<br />
<strong>true</strong>をセットすると、受信後にPOP3サーバーからメールを削除する処理が自動的に実行されます。デフォルトは<strong>false</strong>です。<br />
<strong>ReceiveAllMessages()</strong>メソッドは、<strong>RunCommand("ReceiveAllMessage")</strong>のラッパーメソッドとして実装しているため、どちらの方法を採用しても動作に違いはありません。<br />
]]></content></entry><entry><title>共有すれば相互リンクはもっと簡単に増える！</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=444215" /><id>http://blog.exwarp.com/?eid=444215</id><issued>2007-06-03T18:37:50+09:00</issued><modified>2007-06-03T09:37:50Z</modified><created>2007-06-03T09:37:50Z</created><summary>一人で増やすよりもみんなで増やす方が簡単で速いのは当たり前！
相互リンクもみんなで共有しながら増やす時代です
被リンクが何もしなくても自然に増えつづける【共有型相互リンク】Wonder-Linkはこちらから！
</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[一人で増やすよりもみんなで増やす方が簡単で速いのは当たり前！<br />
相互リンクもみんなで共有しながら増やす時代です<br />
被リンクが何もしなくても自然に増えつづける【共有型相互リンク】<a href="http://wonder-link.com">Wonder-Link</a>はこちらから！<br />
]]></content></entry><entry><title>POP3サーバーからメールを削除せずに新規メールのみを取得する</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=427683" /><id>http://blog.exwarp.com/?eid=427683</id><issued>2007-05-12T12:25:23+09:00</issued><modified>2007-05-13T02:38:20Z</modified><created>2007-05-12T03:25:23Z</created><summary>Exwarp MailKitのPop3ClientのContextプロパティを使用すると、すでに受信済みのメールのUID（ユニークID）を保存することができます。
この機能を利用すると、POP3サーバーからメールを削除せずに、新着メールのみの受信を行なうことができます。
[C#]
Exwarp.Net.Pop...</summary><author><name>master</name></author><dc:subject>technicals</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[Exwarp MailKitの<strong>Pop3Client</strong>の<strong>Context</strong>プロパティを使用すると、すでに受信済みのメールのUID（ユニークID）を保存することができます。<br />
この機能を利用すると、POP3サーバーからメールを削除せずに、新着メールのみの受信を行なうことができます。<br />
<div class="code">[C#]<br />
Exwarp.Net.Pop3.Pop3Client pc = new Exwarp.Net.Pop3.Pop3Client("POP3_HOST");<br />
pc.User = "POP3_USER";<br />
pc.Pass = "POP3_PASS";<br />
pc.Context = context;<br />
pc.Connect();<br />
pc.ReceiveAllMessages();<br />
pc.Close();<br />
</div><br />
<div class="code">[VB.Net]<br />
Dim pc As New Exwarp.Net.Pop3.Pop3Client("POP3_HOST")<br />
pc.User = "POP3_USER"<br />
pc.Pass = "POP3_PASS"<br />
pc.Context = context<br />
pc.Connect()<br />
pc.ReceiveAllMessages()<br />
pc.Close()<br />
</div><br />
[解説]<br />
<strong>POP3_HOST</strong>はPOP3ホスト、<br />
<strong>POP3_USER</strong>はPOP3ホストへ接続するユーザー名、<br />
<strong>POP3_PASS</strong>はPOP3ホストへ接続するパスワードをそれぞれ表す文字列定数です。<br />
<strong>context</strong>は<strong>Exwarp.Net.Pop3.Pop3Context</strong>のインスタンスを表します。このクラスのインスタンスの生成方法については下部でさらに説明します。<br />
<br />
通常のメール受信の前に<strong>Exwarp.Net.Pop3.Pop3Client</strong>オブジェクトの<strong>Context</strong>プロパティに<strong>Exwarp.Net.Pop3.Pop3Context</strong>オブジェクトをセットします。<br />
<strong>Context</strong>プロパティに<strong>Pop3Context</strong>オブジェクトがセットされている場合、<strong>Pop3Client</strong>は、受信メールのUIDのリストを<strong>Pop3Context</strong>の<strong>UniqueIdList</strong>プロパティに追加してゆきます。<br />
<br />
<strong>Pop3Context</strong>オブジェクトを毎回の受信の前にセットすることで、新着メールのみを受信することができますが、そのためには<strong>Pop3Context</strong>オブジェクトをシリアル化（保存）して、次回の受信時に復元しなくてはいけません。<br />
次に<strong>Exwarp.Net.Pop3.Pop3Context</strong>オブジェクトのシリアル化/デシリアル化を解説します。<br />
<br />
以下の例では,<strong>context</strong>という変数で表される<strong>Exwarp.Net.Pop3.Pop3Context</strong>オブジェクトを<strong>C:&yen;context.ser</strong>というファイルに保存/復元します。（ファイル名及び拡張子はどんな文字列でも構いません。）<br />
<br />
<strong>Exwarp.Net.Pop3.Pop3Context</strong>クラスは<strong>System.SerializableAttribute</strong>属性が定義されています。ですからこのオブジェクトをフォーマッタを使用してシリアライズ/デシリアイズすることができます。<br />
■シリアライズ方法（保存）<br />
<div class="code">[C#]<br />
System.IO.Stream st = new System.IO.FileStream("c:&yen;&yen;pop3context.ser",System.IO.FileMode.Create);<br />
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();<br />
f.Serialize(st,context);<br />
st.Close();<br />
</div><br />
<div class="code">[VB.Net]<br />
Dim st as New System.IO.FileStream("c:&yen;pop3context.ser",System.IO.FileMode.Create)<br />
dim f As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()<br />
f.Serialize(st,context)<br />
st.Close()<br />
</div><br />
[解説]<br />
オブジェクトのシリアル化には、<strong>System.Runtime.Serialization.Formatters.Binary.BinaryFormatter</strong>クラスを使用します。シリアル化（保存）したいファイルのストリームを表す<strong>System.IO.Stream</strong>とシリアル化したいオブジェクト（<strong>context</strong>）を<strong>Serialize</strong>メソッドのパラメータにセットするだけでオブジェクトのシリアル化は完了です。<br />
<br />
■デシリアライズ方法（復元）<br />
<div class="code">[C#]<br />
System.IO.Stream st = new System.IO.FileStream("c:&yen;&yen;pop3context.ser",System.IO.FileMode.Open);<br />
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();<br />
Exwarp.Net.Pop3.Pop3Context context = (Exwarp.Net.Pop3.Pop3Context)f.Deserialize(st);<br />
st.Close();<br />
</div><br />
<div class="code">[VB.Net]<br />
Dim st as New System.IO.FileStream("c:&yen;pop3context.ser",System.IO.FileMode.Open)<br />
dim f As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()<br />
Dim context As Exwarp.Net.Pop3.Pop3Context = f.Deserialize(st)<br />
st.Close()<br />
</div><br />
[解説]<br />
オブジェクトの復元には、<strong>System.Runtime.Serialization.Formatters.Binary.BinaryFormatter</strong>クラスを使用します。デシリアイズ（復元）したいファイルのストリームを表す<strong>System.IO.Stream</strong>を<strong>Deserialize</strong>メソッドのパラメータに返すと、ファイルから復元されたオブジェクトが返されます。<br />
<br />
この方法でPOP3ホストからメールを削除せずに新着メールのみを取得することができます。<br />
（注意）UIDの値が他のPOP3ホストと重複することがあり得るため、<strong>Pop3Context</strong>はPOP3ホストごとに1ファイル作成するようにして下さい。<br />
<br />
<br />
サンプルコード<br />
<div class="code">[C#]<br />
System.Runtime.Serialization.IFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();<br />
if(System.IO.File.Exists("c:&yen;&yen;pop3context.ser"))<br />
&#123;<br />
&nbsp;&nbsp;using(System.IO.Stream st = new System.IO.FileStream("c:&yen;&yen;pop3context.ser",System.IO.FileMode.Open))<br />
&nbsp;&nbsp;&#123;<br />
&nbsp;&nbsp;&nbsp;&nbsp;context = (Exwarp.Net.Pop3.Pop3Context)f.Deserialize(st);<br />
&nbsp;&nbsp;&#125;<br />
&#125;<br />
else<br />
&#123;<br />
&nbsp;&nbsp;context = new Exwarp.Net.Pop3.Pop3Context();<br />
&#125;<br />
<br />
Exwarp.Net.Pop3.Pop3Client pc = new Exwarp.Net.Pop3.Pop3Client("POP3_HOST");<br />
pc.User = "POP3_USER";<br />
pc.Pass = "POP3_PASS";<br />
pc.Context = context;<br />
pc.Connect();<br />
pc.ReceiveAllMessages();<br />
pc.Close();<br />
<br />
using(System.IO.Stream st = new System.IO.FileStream("c:&yen;&yen;pop3context.ser",System.IO.FileMode.Create))<br />
&#123;			<br />
&nbsp;&nbsp;f.Serialize(st,pc.Context);<br />
&#125;<br />
</div>]]></content></entry><entry><title>CompoundSmtpClientトライアウトバージョン公開のお知らせ</title><link rel="alternate" type="text/html" href="http://blog.exwarp.com/?eid=423637" /><id>http://blog.exwarp.com/?eid=423637</id><issued>2007-05-06T18:19:18+09:00</issued><modified>2007-05-06T09:26:37Z</modified><created>2007-05-06T09:19:18Z</created><summary>複数のSMTPクライアントを使用して大量メールの並列送信が行なえるExwarp.Net.Smtp.CompoundSmtpClientが含まれるExwarp.Net.Smtp.Extension.dllを公開しました。
CompoundSmtpClientを使用するにはパスキーの取得が必要です。（スパムメール送信防止のためご協力お願い...</summary><author><name>master</name></author><dc:subject>information</dc:subject><content mode="escaped" type="text/html" xml:lang="ja"><![CDATA[複数のSMTPクライアントを使用して大量メールの並列送信が行なえる<strong>Exwarp.Net.Smtp.CompoundSmtpClient</strong>が含まれる<strong>Exwarp.Net.Smtp.Extension.dll</strong>を公開しました。<br />
<strong>CompoundSmtpClient</strong>を使用するにはパスキーの取得が必要です。（スパムメール送信防止のためご協力お願いいたします）<br />
パスキーの取得は<a href="http://exwarp.com/products/passkey.html">こちら</a>で行なえます。<br />
<br />
メールを大量に送信するサンプルコードは次のようになります。<br />
<div class="code">[C#]<br />
Exwarp.Net.Smtp.CompoundSmtpClient client = new Exwarp.Net.Smtp.CompoundSmtpClient("HOST_NAME",10);<br />
client.SetProperty("tryout_user","パスキーのID");<br />
client.SetProperty("tryout_pass","パスキーのパスワード");<br />
client.Connect();<br />
client.SendReceive(MAILS);<br />
client.Close();<br />
</div><br />
解説<br />
<strong>HOST_NAME</strong>はSMTPホスト名を表す文字列。<br />
<strong>MAILS</strong>は送信メールを表すSystem.Collections.IList型のコレクションです。<br />
<br />
<strong>CompoundSmtpClient</strong>はコンストラクタに、ホスト名とプロセス数を受け取ります。この例では同じホストに10プロセスでメールを送信することになります。<strong>AddSmtpClient()</strong>メソッドを使用して、他のSMTPホストに接続することもできます。<br />
<br />
メールの送信は通常どおりですが、トライアウトバージョンではパスキーを設定しなければ接続に失敗します。<strong>SetProperty()</strong>メソッドを使用してパスキーを設定します。<br />
<br />
このライブラリをスパムメール送信に使用することは禁止します。大量のメールマガジンの送信などに使用して下さい。<br />
<br />
<a href="http://exwarp.com/download/exwarp/net/smtp/extension/tryout/compoundsmtpclient.zip">Exwarp.Net.Smtp.Extension.dllのダウンロード</a>]]></content></entry></feed>