.NET用メール送受信クラスライブラリ (TKMP.DLL) TKMP : ImapClient Members TKMP : Mailbox Members ▼ バッチファイルpowershell -NoProfile -ExecutionPolicy Unrestricted .\imap_sub_mailbox.ps1 ユーザ パスワードimap_sub_mailbox.ps1
$user = $Args[0] $pass = $Args[1] $code = @" using System; using TKMP.Net; using TKMP.Reader; public class MyClass { public static void mail_Subbox() { ImapClient client = null; // 接続準備 BasicImapLogon logon = new BasicImapLogon("${user}@さくらユーザ.sakura.ne.jp", "${pass}"); client = new ImapClient(logon, "さくらユーザ.sakura.ne.jp", 993); client.AuthenticationProtocol = AuthenticationProtocols.SSL; // 接続 try { if (!client.Connect()) { Console.WriteLine("接続できませんでした"); return; } } catch (Exception ex) { Console.WriteLine("接続エラーが発生しました" + ex.Message ); return; } // 階層のセパレータ文字列の取得 Console.WriteLine("Separator : " + client.Separator); // デフォルトメールボックスの表示 Console.WriteLine("FullName : " + client.DefaultMailbox.FullName); // Mailbox 一覧 : 実質 INBOX Mailbox[] mailbox_list = client.GetMailBox(); foreach (Mailbox mb in mailbox_list) { Console.WriteLine( "ルート : " + mb.FullName); // 全て表示 show_Subbox( mb ); } // 受信終了 client.Close(); } // *************************************** // メールボックス(階層)の一覧表示 // *************************************** public static void show_Subbox( Mailbox mb ) { Console.WriteLine( "mailbox : " + mb.FullName ); if ( (mb.Flags & MailBoxFlags.HasChildren) == MailBoxFlags.HasChildren ) { Mailbox[] mailbox_list = mb.SubMailbox; foreach (Mailbox mailbox in mailbox_list) { show_Subbox( mailbox ); } } } } "@ $path = "C:\user\ps\TKMPDLL_3.1.8" Add-Type -Path ("${path}\TKMP.dll") Add-Type -Language CSharp -TypeDefinition $code -ReferencedAssemblies ("${path}\TKMP.dll") [MyClass]::mail_Subbox()
実行結果Separator : . FullName : INBOX ルート : INBOX mailbox : INBOX mailbox : INBOX.個人用 mailbox : INBOX.AAA mailbox : INBOX.spam mailbox : INBOX.Sent mailbox : INBOX.TEST mailbox : INBOX.Trash mailbox : INBOX.Draft mailbox : INBOX.Drafts mailbox : INBOX.最上位のフォルダ mailbox : INBOX.メールアイテム格納用 mailbox : INBOX.メールアイテム格納用.階層テスト
|
【PowerShell + C#の最新記事】
- nuget.exe CLI を使用してパッケージをダウンロードし、C# のソースコードで利用して PowerShell でビルドする
- PowerShell を使用して、C# のコンソールアプリ用のソースコードから exe を作成する( WebClient で wget.exe ) / ビルドせずに PowerShell で実行
- PowerShell で VisualStudio で作成した Form アプリケーションをビルドする( DataGridView に select 文の結果を表示する / MySQL )
- PowerShell で VisualStudio で作成した Form アプリケーションをビルドする( Form アプリケーションを テキストエディタのみで作成するテンプレート )
- nuget.exe + SMO + PowerShell + C# : テーブルの CREATE TABLE 文 を取得
- PowerShell( 実質C# )を使用して、ファイルの分割を行う
- PowerShell( 実質C# )を使用して、MessageBox の応答でバッチファイルの処理を変化させる
- PowerShell で C# のソースコード(get_rec_mysql.cs) を使用して System.Data.Odbc で MySQL のデータを一覧表示( csv )