2017-12-12 10 views
0

netcmdletsを使用して、マルチパートテキストとプレーンテキストメールのメッセージ本文テキストを取得しようとしています。接続は正常に動作し、電子メールが取得され、問題なく添付ファイルを保存できますが、本文の保存方法はわかりません。PowershellでGet-IMAP NetCmdletsを使用してIMAPメール本文を保存する方法は?

import-module "C:\Program Files\nsoftware\NetCmdlets V4\netcmdlets" 

$emails = get-imap -Connect $imapconnection -Folder $folder 
foreach($msg in $emails) 
{ 
    if($msg.ContentType.StartsWith("multipart")) 
    { 
     # get message body text for multipart? 
    } 
    else 
    { 
     # get message body text for non multipart?? 
    } 
} 

編集

get-imap -Connect $imapconnection -Folder $folder | Get-Member 

は、フォルダからのすべてのメッセージがMessageInfoObjectsのコレクションを返しますが、電子メールをつかむためにフェッチ

TypeName: nsoftware.NetCmdlets.Commands.MessageInfoObject 

Name    MemberType Definition 
----    ---------- ---------- 
Equals    Method  bool Equals(System.Object obj) 
GetHashCode   Method  int GetHashCode() 
GetType    Method  type GetType() 
ToString   Method  string ToString() 
BCC     Property string[] BCC {get;set;} 
CC     Property string[] CC {get;set;} 
ContentEncoding  Property string ContentEncoding {get;set;} 
ContentType   Property string ContentType {get;set;} 
Date    Property string Date {get;set;} 
Flags    Property string Flags {get;set;} 
From    Property string From {get;set;} 
FromEmail   Property string FromEmail {get;set;} 
FromFriendlyName Property string FromFriendlyName {get;set;} 
Id     Property string Id {get;set;} 
PartContentEncoding Property string[] PartContentEncoding {get;set;} 
PartContentType  Property string[] PartContentType {get;set;} 
PartCount   Property int PartCount {get;set;} 
PartFileName  Property string[] PartFileName {get;set;} 
PartId    Property string[] PartId {get;set;} 
PartMultiPartMode Property string[] PartMultiPartMode {get;set;} 
PartParameters  Property string[] PartParameters {get;set;} 
PartSize   Property string[] PartSize {get;set;} 
ReplyTo    Property string ReplyTo {get;set;} 
ReplyToEmail  Property string ReplyToEmail {get;set;} 
ReplyToFriendlyName Property string ReplyToFriendlyName {get;set;} 
Size    Property long Size {get;set;} 
Subject    Property string Subject {get;set;} 
+0

私はこれらのコマンドレットに精通していません。あなたは '$ msg |を使うことができますか? Get-Member'を実行して、プロパティのいずれかが本文のコンテンツのように見えるかどうかを確認します。ちょっとドリルダウンする必要があるかもしれません。ドキュメントには、いくつかの異なる出力タイプが示されています。 –

+0

は質問に出力を追加しました – Gord

+0

'$ msg | Get-Member'はそれ自身で空行を返します(foreachループに追加されます) – Gord

答えて

0

を与えますあなた自身の身体メッセージIDを-Viewパラメータに渡して特定のメッセージを取得する必要があります。あなたはこのようないくつかのロジックを持っているかもしれないので、あなたは、MessageInfoObjectからIDをつかむことができます。

$emailList = Get-IMAP -Connection $conn -Folder INBOX 
$currentEmail = Get-IMAP -Connection $conn -Folder INBOX -View $emailList[0].Id 

この時点で$ currentEmail.Textはそのメッセージ(受信ボックス内の最初のメッセージ)のために体を返します。

関連する問題