電子メールの本文からリンクを抽出し、そのリンクに添付ファイルを保存しようとしています。リンクを抽出して添付ファイルを保存する - PowerShell
$Folder = "InBox"
Add-Type -AssemblyName microsoft.office.interop.outlook
$Outlook = New-Object -ComObject Outlook.Application
$Namespace = $Outlook.GetNameSpace("MAPI")
$Email = $NameSpace.Folders.Item(1).Folders.Item($Folder).Items
$extracts = $Email | Where-Object {$_.subject -match "PITM*"}
$extracts | ForEach-Object {
$email = $_.Body
#$lines = $email | Measure-Object -Line
if($email -match '<(.*?)>'){
"Match Found"
$url = $matches[1]
}
$url
$output = "H:\foo.DAT"
$Process = new-Object System.Diagnostics.Process
$Process.StartInfo.WindowStyle="Hidden"
$Process.StartInfo.FileName="chrome.exe"
$Process.StartInfo.Arguments=$url
$Process.Start()
}
$Process.Dispose()
メール本文は、次のようになります
番号:PITM0008575を https://a.com/nav_to.do?uri=foo%3Fsys_id=58689b056f90a60002da186e6b3ee484%26sysparm_stack=u_production_item_list.do%3Fsysparm_query=active=true
依頼期日:
成就日:
完了日:
の添付ファイル:
- スクリプトは2番目のリンクを引き上げていません:レポート https://a.com/sys_attachment.do?sys_id=829893456f90a60002da186e6b3ee402
foo.txtのここで私がきた2つの問題があります。
助けてください。
こんにちは、 '$ matches'を確認しましたか?リンクが指しているファイルをダウンロードしたいのであれば、Chromeをあなたが最良の選択(IEの自動化、または 'Invoke-WebRequest')しているとは思わないでしょう。 – sodawillow
はい、matches [0]は<>内のリンクを持ち、[1]と一致しません。マッチ[2]は空です。私はIEを使用しましたが、IEエンジンが利用できないか、設定されていないというエラーが投げられました(両方とも無効です)。そのため、Chromeを使用しました。 – skrubber