PowerShell анализирует электронную почту из html

#html #powershell #email #parsing #imapx

Вопрос:

Я пытаюсь использовать тебя impx.dll с помощью PowerShell и у меня возникают трудности при попытке разобрать html.
Есть ли какие-либо примеры, с которыми кто-либо может мне помочь или указать мне правильное направление.

Я новичок в powershell и нуждаюсь в любой помощи, которую могу получить. — Заранее спасибо!

Я использую следующее:

 Start-Transcript -path C:log.txt -append
$path = "C:scripts"

[Reflection.Assembly]::LoadFile(“$pathimapx.dll”)

$Username = "user"
$Password = "pass"

# Initialize the IMAP client
$client = New-Object ImapX.ImapClient

###set the fetching mode to retrieve the part of message you want to retrieve, 
###the less the better
$client.Behavior.MessageFetchMode = "Full"
$client.Host = "webmailserverblabla"
$client.Port = 993
$client.UseSsl = $true
$client.Connect()
$client.Login($Username, $Password)

$messages = $client.Folders.Inbox.Search("ALL", $client.Behavior.MessageFetchMode, 100)

# Counts the number of emails in the inbox
write-host "Count found: $($messages.count)"

# loops through inbox for all subjects and writes them
foreach($m in $messages){

    $m.From.Address
    $m.Subject
    $m.UId
    $m.body.Text
    $m.DownloadRawMessage()
}


Output to parse:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
</style>
</head>
<body lang="EN-US" link="#xxxxxx" vlink="#xxxxxx" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Test<o:p></o:p></p>
<p class="MsoNormal"><o:p>amp;nbsp;</o:p></p>
<p class="MsoNormal"><span style="color:#63666A">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>amp;nbsp;</o:p></p>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:amp;quot;Arialamp;quot;,sans-serif;color:#005CB9">James</span></b><span style="font-size:9.0pt;font-family:amp;quot;Arialamp;quot;,sans-serif;color:#005CB9"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p>amp;nbsp;</o:p></p>
</div>
</body>
</html>
 

Комментарии:

1. Что вы подразумеваете под разбором? Вам нужен <body>...</body> текст из необработанного html? Вам, вероятно, придется просто регулярно указывать, что вы хотите.

2. Да, я хочу <тело>…<тело></тело> текст из необработанного html? Не знаю, как правильно выполнять регулярные выражения…

3. Возможно, вы также захотите взглянуть на библиотеку, подобную HtmlAgilityPack ( html-agility-pack.net ) для обработки html. Если вы используете регулярное выражение, вы потенциально получите недостижимый суп из регулярных выражений, прежде чем продвинетесь очень далеко…

4. Я бы также настоятельно рекомендовал использовать что-то вроде HtmlAgilityPack.