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

03
--
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
31
--
>>
<<
--

メール

主に、メール送受信ライブラリを紹介します。各種ソフトウェア、PHPコンテンツ制作、SEO対策もお任せください。
ReceiveAllMessagesでメールを受信中に受信を途中でキャンセルするのはどうしたらいいでしょうか?
0

    この関数は名前の通り一度に全てのメールを受信するため、途中で止めることは想定されていません


    中断可能なメール受信機能を実現するには

    カスタムオペレーションの使用をおすすめ致します

    サンプルはこちらをご参照ください

    http://exwarp.com/member/useroperations.html 


    他の方法として、一度に全てのメールを処理しないオプションも用意されています


    pop3client.setProperty(“RetrLimit”,1);


    というコードを受信処理の前に追加すると

    サーバーのメール件数に関わりなく1件の受信で処理が完了します


    その他、緊急対応としては

    pop3client.Socket

    でソケットを取得し、ソケットを閉じることも出来ます。

    この方法は通信を遮断するため、適切に例外をハンドリングしてください


    | technicals | 14:36 | - | - | - | - |
    【質問】例えば AUの携帯端末でhtmlにアクセスし formのtextボックスに絵文字入りの文章を入力 その文章をdocomoやsoftbank携帯宛にメールをしたい場合、絵文字の変換は可能ですか?
    0
      この機能を実装するためには、HTTPでの絵文字入力(デコード処理)と、絵文字メール送信(エンコード処理)が必要となります。

      残念ながら、現状Exwarp MailKitが対応しているのは絵文字出力(エンコード処理)のみとなりますので、フォームなどから入力された絵文字を識別する機能につきましては、実装することができません。
      PHPでは、mb_substitute_character("long");を利用することで比較的簡単に絵文字コードの抽出が行えます。

      3キャリア向けの絵文字メールを配信する機能につきましては、問題なく実装が可能です。、
      | technicals | 12:29 | - | - | - | - |
      【質問】Access2007から使えますか
      0
        本ライブラリは.Net Framework対応ですのでACCESSなどのマクロから直接呼び出すことはできません。
        しかし、一旦本ライブラリを使用したコンソールアプリケーションを.Net環境で作成しACCESSからシェル経由で呼び出すなどの方法で間接的にご利用いただけます。
        | technicals | 19:14 | - | - | - | - |
        絵文字付のメールを作成する
        0

          ExwarpMailKit1.0.438.*以降のライブラリ+Exwarp.Module.EmojiModuleを利用すると、絵文字を簡単に作成することができます。


          最新版をダウンロードしてください。


          [C#]
          Exwarp.Net.RFC.MIME.MIMETransform.RawEncoding = true; //(0)

          Exwarp.Net.Mail.MailMessage mail = new Exwarp.Net.Mail.MailMessage(System.Text.Encoding.ASCII); //(1)

          Exwarp.Module.ModuleLoader ml = new Exwarp.Module.ModuleLoader(mail); //(2)
          ml.LoadModule("Exwarp.Module.EmojiModule.dll"); //(3)

          mail.To = "mail_to@docomo.ne.jp"; //(4)
          mail.From = "mail_from@myhost.com";

          mail.RunCommand("Emoji_SetSubject","<emoji:1>絵文字メール"); //(5)
          mail.RunCommand("Emoji_SetBody","<emoji:100>絵文字本文"); //(6)

          Exwarp.Net.Smtp.SmtpClient client = new Exwarp.Net.Smtp.SmtpClient("HOST_NAME");
          if(client.Connect())
          {
            client.SendReceive(mail);
            client.Close();
          }

          [VB.NET]
          Exwarp.Net.RFC.MIME.MIMETransform.RawEncoding = True '(0)

          Dim mail As New Exwarp.Net.Mail.MailMessage(System.Text.Encoding.ASCII) '(1)

          Dim ml As New Exwarp.Module.ModuleLoader(mail) '(2)
          ml.LoadModule("Exwarp.Module.EmojiModule.dll") '(3)

          mail.To = "mail_to@docomo.ne.jp" '(4)
          mail.From = "mail_from@myhost.com"

          mail.RunCommand("Emoji_SetSubject","<emoji:1>絵文字メール") '(5)
          mail.RunCommand("Emoji_SetBody","<emoji:100>絵文字本文") '(6)
          Dim client As New Exwarp.Net.Smtp.SmtpClient("HOST_NAME")
          If client.Connect() Then
            client.SendReceive(mail)
            client.Close()
          End If

          [解説]
          (0)Exwarp.Net.RFC.MIME.MIMETransformのRawEncodingプロパティにTrueをセットします。
          これは、1.0.438より前のバージョンでau携帯への絵文字付の件名が表示されないバグに対処するために必要です。

          (1)Exwarp.Net.Mail.MailMessageのインスタンスを作成します。このときのエンコーディングは何でもOKです。

          (2)Exwarp.Module.ModuleLoaderのインスタンスを作成します。このときパラメータにモジュールを追加したいMailMessageインスタンスを渡します。

          (3)LoadModuleメソッドを呼び出して、モジュールをロードします。
          モジュールdllへのパスを表す文字列をセットします。実行ファイルと同じディレクトリにコピーしておくとファイル名だけで済むのでお勧めです。(別にモジュールの位置はどこでも構いません。参照を追加しておく必要もありません。)

          (4)必ず最初にMailMessageToプロパティをセットしておきます。この値を元に絵文字データが変換されます。

          (5)モジュールをロードするとEmoji_SetSubjectカスタムオペレーションが実行できるようになります。通常の文字列の任意の場所に<emoji:***>と記述すると内部でバイナリに自動変換します。(***の部分はdocomoの絵文字番号を入力します。)

          (6)(5)と同じ要領でEmoji_SetBodyカスタムオペレーションを実行します。絵文字の挿入方法は同じです。

          あとは通常のメール送信を行います。特別な操作は必要ありません。


          追加事項

          Emoji_SetSubjectおよびEmoji_SetBodyカスタムオペレーションに2番目の引数をセットすることができます。これは任意の絵文字変換テーブルファイルへのパスを表す文字列です。
          mail.RunCommand("Emoji_SetBody","<emoji:1>","MyEmojiTable.txt")

          上の様に記述すると、デフォルトの変換テーブルではなく、自由にカスタマイズした変換テーブルを使って絵文字の変換が行われます。
          デフォルトの変換テーブルは、こちらからダウンロードできます。
          絵文字コードは必ず半角大文字の英数4桁タブ区切りで記述します。
          docomo,softbankは必ずShift-JISバイナリ用コード、auはEメール送出用JISコードに対応したShift-JISコードを記述します。
          176以上の番号を設定することも可能ですが、上限は999です。


          注意事項

          メールの宛先はひとつに限定するか、同じキャリアのメールアドレスを設定してください。
          絵文字によっては表示されないものがあります。これはdocomoの絵文字番号を元にほかのキャリアの絵文字の中からよく似た絵文字に変換しているためで、該当する絵文字が存在しない番号は欠番となります。
          | technicals | 17:34 | - | - | - | - |
          【質問】ExwarpMailKitの携帯端末対応について
          0
            ExwarpMailKitの携帯端末対応について:

            ■携帯端末宛のHTMLメールについて
            ExwarpMailKitでは、テキスト形式とHTML形式のメール本文を混在させることが可能ですので、携帯端末にHTML形式の本文でメールを作成することも可能です。
            ただし、HTML形式の本文に関しましては、Content-Transfer-Encodingの値が強制的にQuoted-Printableになる仕様となっておりますので、Base64や7bitでのエンコードを要求するメーラーでは正常に読むことができない可能性もあります。

            ■携帯端末宛の絵文字メールについて
            ExwarpMailkitではメール本文にバイナリコードを挿入する機能はございません。そのため、絵文字などバイナリで入力する必要のある一部キャラクタにつきましては現在のところ未対応となっております。今後の仕様変更で対応可能としてゆく予定ですがリリース次期などは未定です。
            | technicals | 21:32 | - | - | - | - |
            【質問】送信時間を指定するにはどうすればよいですか?
            0
              送信時間を指定するには、Exwarp.Net.Mail.MailMessageクラスのDateプロパティに日付情報を文字列で設定します。
              [C#]
              mail.Date = "9 Sep 2008 17:00:00 +0900";

              [VB.Net]
              mail.Date = "9 Sep 2008 17:00:00 +0900"

              [解説]
              mailはExwarp.Net.Mail.MailMessageのインスタンスをあらわします。設定値はRFC 1123準拠の文字列型である必要があります。
              +0900でタイムゾーンを設定しない場合GMT(世界標準時)で解釈される場合があります。
              | technicals | 18:56 | - | - | - | - |
              【質問】メール受信において稼動状況をログファイルに出力したいのですが、本ライブラリでは可能ですか?
              0
                現状では、直接ログを出力する機能は本ライブラリに実装されておりませんが、受信ロジックは自由に拡張したり書き換えたりすることができますので、ログを出力するロジックを追加した受信処理を実装することは可能です。
                カスタム受信のサンプルはこちらに参考にできるコード(C#)を公開しております。
                | technicals | 18:32 | - | - | - | - |
                【質問】1件づつメールをサーバより削除する方法はどのようにするのでしょうか?
                0
                  メールをどのタイミングで削除するのかにより、手順が異なりますが以下の2通りの場面について解説いたします。

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

                  ■メールの受信とは別にサーバーからメールを削除する
                  この場合、こちらにカスタムオペレーションのソースコードを公開しておりますので、ご参考になってください。
                  本カスタムオペレーションを実行すると、メールサーバーからすべてのメールを1件ずつ削除することができます。削除するメールを判別しながら削除するなどの処理を実行したい場合は、ソースコードに必要な条件式を入力していただくことで対応可能です。
                  | technicals | 17:03 | - | - | - | - |
                  【質問】1行の文字数を設定してMIMEエンコードしたメール本文を、Exwarp.Net.Mail.MailMessageオブジェクトを用いて送信できますか?
                  0
                    通常、メール本文にMIMEエンコードを行うことはありません。
                    メール本文は、Content-Typeヘッダーフィールドにcharsetが指定されている場合、その文字セットでエンコードされたバイト列で記述されます。
                    例外として、charsetで指定されている文字セットが8ビットエンコーディングの場合には、base64やquoted-printableという方法で7ビット化したバイト列を記述します。
                    ExwarpMailKitには現在のところ、本文の1行の文字列を調整する機能は実装しておりません。ただし、前述のbase64については、76文字を超えないように自動的に調整されます。
                    | technicals | 14:05 | - | - | - | - |
                    【質問】特定の「件名」のメッセージだけを取得するには?
                    0
                      特定の件名が含まれるメッセージを受信するには、カスタム受信処理を行う必要があります。
                      下記の要領でカスタム受信を行います。

                      ■POP3ホストへ接続
                      ■ログイン認証
                      ■STATコマンドの送信とメール件数の取得

                      ◇すべてのメールに対して次の処理を繰り返す。
                      ■TOPコマンドを使用してそれぞれのメールのヘッダーを取得
                      ■受信したいSubjectの場合は、RETRコマンドを使用してメールメッセージの取得
                      ■必要ならDELEコマンドを使用して受信メールの削除
                      ◇繰り返し終わり

                      ■QUITコマンドを送信してログオフ

                      カスタム受信のサンプルはこちらを参照してください。
                      | technicals | 12:34 | - | - | - | - |