メール http://exwarp.com/ 主にメール送受信ライブラリの紹介をしています。 ja http://exwarp.com/?id=147 Exwarp MailKit 1.0.406.*リリースのお知らせ ExwarpMailKit1.0.406.*をリリースいたしました。 主な変更点は次のとおりです。 ■Exwarp.Net.RFC.MIME.MIMETransform.SafeModeプロパティ(STATICプロパティ)を追加しました。これは一部のSMTPサーバーがメールのリレー時に?=の後ろに強制的にホワイトスペースを追加する仕様に対処するために使用します。上記プロパティをTrueに設定し Information 2008-07-21T16:38:46+09:00 exWarp http://exwarp.com/?id=146 Exwarp MailKit 1.0.406.*リリースのお知らせ ExwarpMailKit1.0.406.*をリリースいたしました。 主な変更点は次のとおりです。 ■Exwarp.Net.RFC.MIME.MIMETransform.SafeModeプロパティ(STATICプロパティ)を追加しました。これは一部のSMTPサーバーがメールのリレー時に?=の後ろに強制的にホワイトスペースを追加する仕様に対処するために使用します。上記プロパティをTrueに設定し Information 2008-07-21T16:38:02+09:00 exWarp http://exwarp.com/?id=145 【質問】1件づつメールをサーバより削除する方法はどのようにするのでしょうか? メールをどのタイミングで削除するのかにより、手順が異なりますが以下の2通りの場面について解説いたします。 ■メールの受信と同時にメールをサーバーから削除する この場合、Exwarp.Net.Pop3.Pop3ClientオブジェクトのReceiveAllMessages()メソッドを実行する際のパラメータ値にtrueを指定することで、メールの受信と同時に削除を実行できます。 詳しくはこち こちらの記事を参照ください。 ■メールの受信とは別にサーバーからメールを削除する この場合、こちらにカスタムオペレーションのソースコードを公開しておりますので、ご参考になってください。 本カスタムオペレーションを実行すると、メールサーバーからすべてのメールを1件ずつ削除することができます。削除するメールを判別しながら削除するなどの処理を実行したい場合は、ソースコードに必要な条件式を入力していただくことで対応可能です。 ]]> Exwarp MailKit マニュアル 2008-02-16T17:08:05+09:00 exWarp http://exwarp.com/?id=144 【質問】1行の文字数を設定してMIMEエンコードしたメール本文を、Exwarp.Net.Mail.MailMessageオブジェクトを用いて送信できますか? 通常、メール本文にMIMEエンコードを行うことはありません。 メール本文は、Content-Typeヘッダーフィールドにcharsetが指定されている場合、その文字セットでエンコードされたバイト列で記述されます。 例外として、charsetで指定されている文字セットが8ビットエンコーディングの場合には、base64やquoted-printableという方法で7ビット化したバイト列を記述します Exwarp MailKit マニュアル 2008-01-27T14:07:01+09:00 exWarp http://exwarp.com/?id=143 【質問】サブミッションポート(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 [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を利用した暗号化通信には対応しておりませんのでご注意ください。 ]]>
Exwarp MailKit マニュアル 2007-10-18T10:14:59+09:00 exWarp
http://exwarp.com/?id=142 ExwarpMailKit1.0.359.*リリースのお知らせ Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。 ■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。 ■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。 ■HideBccプロパティの追加。SM Exwarp MailKit 1.0.359.*をリリースいたしました。本バージョンには以下の変更点があります。
■非同期スレッドで発生した例外がメインスレッドで補足できないバグを修正。
■Return-PathにFromで設定した値が強制的に適用される仕様を変更。Return-PathとFromヘッダーフィールドに異なるメールアドレスを指定できます。
■HideBccプロパティの追加。SMTPホストへのBCCヘッダーフィールドの送信を制限します。
製品版を購入いただいておりますユーザー様 ]]>
Information 2007-09-02T16:28:32+09:00 exWarp
http://exwarp.com/?id=141 メール受信後にPOP3サーバーからメールを削除する メールの受信後にサーバーからメールを削除したい場合は,ReceiveAllMessages()メソッドに削除パラメータをわたす方法が最も簡単です。 【注意!】削除したメールは二度と元に戻りませんのでご注意ください。 [VB.NET] client.Connect() client.ReceiveAllMessages(True) client.Close() または、 clien 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")のラッパーメソッドとして実装しているため、どちらの方法を採用しても動作に違いはありません。 ]]>
Exwarp MailKit マニュアル 2007-07-31T17:53:51+09:00 exWarp
http://exwarp.com/?id=140 ExwarpMailKit1.0.352.*公開のお知らせ Exwarp MailKit 1.0.352.*をリリースしました。 スパムメールの受信時などに発生する「不正なdatetimeです。」例外を回避できます。 製品版をご購入いただいたユーザー様は無料でバージョンアップできます。 Information 2007-07-12T18:26:11+09:00 exWarp http://exwarp.com/?id=139 メールのメッセージソースを取得する。 RFCMessage及びその派生クラス(MIMEMessageやMailMessage)にはMessageSourceプロパティが定義されています。このプロパティの値はByte型の配列ですが、このプロパティの値を取得したり更新したりすることでメッセージソースを簡単に操作できます。 [C#] byte[] src = msg.MessageSource; System.Diagnostics. 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ビット文字が出てくる場合正常に表示されません。文字化けします。

]]>
Exwarp MailKit マニュアル 2007-07-07T12:31:36+09:00 exWarp
http://exwarp.com/?id=138 メールの添付ファイルを削除する メールメッセージに含まれる添付ファイルを削除するには、RemoveAttachmentカスタムオペレーションを使用します。今回はすべての添付ファイルを削除するサンプルを紹介します。[C#] object atts = mail.RunCommand("GetAttachments"); if(atts != null) {     foreach メールメッセージに含まれる添付ファイルを削除するには、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型のまま渡しています。

]]>
Exwarp MailKit マニュアル 2007-06-21T11:43:06+09:00 exWarp