#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.