RECOMMEND
C# 言語リファレンス Black Book
C# 言語リファレンス Black Book (JUGEMレビュー »)
ビル ワグナー, Bill Wagner, スリーエーシステムズ, アクロバイト
RECOMMEND
RECOMMEND
SELECTED ENTRIES
CATEGORIES
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS

04
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--

メール

主に、メール送受信ライブラリを紹介します。各種ソフトウェア、PHPコンテンツ制作、SEO対策もお任せください。
【質問】メールサーバーから受信メールを取得した際、ウイルスメールなどの対策は?
0
    ExwarpMailKitを使用してメールを受信する際のウイルスメール対策などは特に用意されていません。

    メールメッセージは、通常単なる7ビットのテキストとして受信されますので、受信処理だけでウイルスに感染することはありませんが、バイナリファイルに展開するなどの処理が実行される場合には、問題が発生する可能性があります。

    それで、ウイルスメールの可能性があると思われるメールについては、以下の処理を避けるなどしてウイルスメール対策を講じることが出来ます。

    ■mail.RunCommand("SaveBinariBody",PATH)の使用
    ■mail.BinaryBodyプロパティの参照

    上記、2点に共通して実行される処理は、BinaryBodyプロパティが参照されることです。
    BinaryBodyプロパティを参照すると7ビットのテキストから8ビットのバイナリデータに変換されるため、メモリ上にプログラムの実体が展開されます。この場合、ウイルスプログラムが実行される可能性があります。

    BinaryBodyプロパティが参照されるまでは、7ビットのテキストのままですので問題はありません。
    | technicals | 12:27 | - | - | - | - |
    【解決】バグ報告:非同期スレッドで発生する例外がキャッチできない。
    0

      詳細非同期スレッド(Exwarp.Net.AbstractNetClientクラス内のコールバック関数)内で発生する例外がメインスレッドに引き渡されないために、メインスレッドでエラーをキャッチできずにアプリケーションが強制終了してしまいします。


      確認された日付2007/8/24


      アセンブリ名Exwarp.Net.dll


      バージョン1.0.352.*以前のすべてのライブラリ


      種類バグ


      状態次期バージョンにて修正済み


      対処1.0.359.*以降のバージョンにバージョンアップしてください。

      | technicals | 16:23 | - | - | - | - |
      【質問】SMTPでデータ受信が行なえますか?
      0
        SMTPは、メール送信のためのプロトコルですので、「データ受信」が「メール受信」という意味でしたら、POP3プロトコルを使用する必要があります。
        Exwarp MailKitにはPOP3クライアントも含まれておりますので、こちらを利用してメール受信プログラムは簡単に実装できます。

        Exwarp MailKitには、SMTPクライアントも含まれておりますが、あくまでSMTPプロトコルの枠内でのデータ受信となりますので、独自のメッセージを送受信することは出来ません。
        | technicals | 22:49 | - | - | - | - |
        【質問】購入した際に使い方及びサンプルはありますか?
        0
          お客様から最も問い合わせの多い質問が「購入した製品版には添付ドキュメントがありますか?」です。

          大変申し訳ござえいませんが、現状では添付ドキュメントなどは準備いたしておりません。
          その代わりに、お客様からの直接のご質問にサンプルコードなどを提示しつつお答えさせていただいております。
          また、本ブログ上でもお客様からのご質問があった内容をサンプルコードを交えて随時投稿しております。
          お客様には大変ご不便とご迷惑をおかけしておりますが、ご理解いただきますようよろしくお願い申し上げます。
          | technicals | 22:45 | - | - | - | - |
          メールの受信後にサーバーから削除する
          0
            メールの受信後にサーバーからメールを削除したい場合は,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")のラッパーメソッドとして実装しているため、どちらの方法を採用しても動作に違いはありません。
            | technicals | 17:44 | - | - | - | - |
            共有すれば相互リンクはもっと簡単に増える!
            0
              一人で増やすよりもみんなで増やす方が簡単で速いのは当たり前!
              相互リンクもみんなで共有しながら増やす時代です
              被リンクが何もしなくても自然に増えつづける【共有型相互リンク】Wonder-Linkはこちらから!
              | technicals | 18:37 | - | - | - | - |
              POP3サーバーからメールを削除せずに新規メールのみを取得する
              0
                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);
                }
                | technicals | 12:25 | - | - | - | - |
                【無料】リンクを選択&拒否できる高機能な「共有型相互リンク」ネットワーク登場
                0
                  相互リンクは増やしたいけど、変なサイトからリンクされて困ったことありませんか?
                  Wonder-Linkなら任意のサイトからのリンクを拒否することができます。またページランクの高いサイトだけを厳選してリンクすることも簡単にできます。
                  高機能&被リンクが何もしなくても自然に増えつづける【共有型相互リンク】Wonder-Linkはこちらから!
                  | technicals | 10:04 | - | - | - | - |
                  【質問】2台のSMTPサーバー間で電文の送受信を行なえますか?
                  0
                    Exwarp MailKitはSMTPクライアントとして使用することもできますから、SMTPというプロトコルの枠内であれば、SMTPサーバーへのメッセージの送信や受信は簡単に行なえます。
                    たとえば、独自のメッセージを送信して応答を取得するなどということは、SMTPプロトコルの枠を超えていますので対応できない可能性もあります。
                    さらに詳しく情報を希望なさる場合は、info@exwarp.comまでご連絡ください。
                    | technicals | 09:30 | - | - | - | - |
                    共有すれば相互リンクはもっと簡単に増える!
                    0
                      一人で増やすよりもみんなで増やす方が簡単で速いのは当たり前!
                      相互リンクもみんなで共有しながら増やす時代です
                      被リンクが何もしなくても自然に増えつづける【共有型相互リンク】Wonder-Linkはこちらから!
                      | technicals | 22:32 | - | - | - | - |