Søk etter avsender og mottaker

Standardsøket: alle hendelser for et avsender/mottaker-par i valgt periode, sortert kronologisk.

Letzte 48 Stunden

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -Sender "sender@example.com" -Recipients "empfaenger@example.com" `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" -and $_.Recipients -notmatch "Health" } |
  Sort-Object Timestamp |
  Format-Table Timestamp, EventId, Source, Sender, @{N="Recipients";E={$_.Recipients -join ","}}, MessageSubject -AutoSize

journalctl / grep (Postfix) Innebygd

journalctl -u postfix --since "48 hours ago" | grep -iE "from=<sender@example.com>|to=<empfaenger@example.com>" | tail -40
# Ohne systemd-Journal direkt im Log, dann aber ohne Zeitfilter:
grep -iE "from=<sender@example.com>|to=<empfaenger@example.com>" /var/log/mail.log | tail -40

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

Connect-ExchangeOnline
Get-MessageTraceV2 -SenderAddress "sender@example.com" -RecipientAddress "empfaenger@example.com" `
  -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Sort-Object Received |
  Format-Table Received, SenderAddress, RecipientAddress, Subject, Status -AutoSize

Get-MessageTrace (alt) Tilleggsverktøy

# Vor der Umstellung auf V2; identische Parameter, kleinere Ergebnisgrenzen.
Get-MessageTrace -SenderAddress "sender@example.com" -RecipientAddress "empfaenger@example.com" `
  -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date)

Fenster am Vormittag

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -Sender "sender@example.com" -Recipients "empfaenger@example.com" `
  -Start (Get-Date "2026-08-09 08:00") -End (Get-Date "2026-08-09 12:00") -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" -and $_.Recipients -notmatch "Health" } |
  Sort-Object Timestamp |
  Format-Table Timestamp, EventId, Source, Sender, @{N="Recipients";E={$_.Recipients -join ","}}, MessageSubject -AutoSize

journalctl / grep (Postfix) Innebygd

journalctl -u postfix --since "2026-08-09 08:00" --until "2026-08-09 12:00" | grep -iE "from=<sender@example.com>|to=<empfaenger@example.com>" | tail -40
# Ohne systemd-Journal direkt im Log, dann aber ohne Zeitfilter:
grep -iE "from=<sender@example.com>|to=<empfaenger@example.com>" /var/log/mail.log | tail -40

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

Connect-ExchangeOnline
Get-MessageTraceV2 -SenderAddress "sender@example.com" -RecipientAddress "empfaenger@example.com" `
  -StartDate (Get-Date "2026-08-09 08:00") -EndDate (Get-Date "2026-08-09 12:00") |
  Sort-Object Received |
  Format-Table Received, SenderAddress, RecipientAddress, Subject, Status -AutoSize

Get-MessageTrace (alt) Tilleggsverktøy

# Vor der Umstellung auf V2; identische Parameter, kleinere Ergebnisgrenzen.
Get-MessageTrace -SenderAddress "sender@example.com" -RecipientAddress "empfaenger@example.com" `
  -StartDate (Get-Date "2026-08-09 08:00") -EndDate (Get-Date "2026-08-09 12:00")

De to datofeltene angir tidsrommet på minuttet; står de tomme, bruker kommandoen de siste 48 timene. Get-TransportService spør alle transportservere, ikke bare den lokale. HealthMailbox-linjene (Microsofts egne overvåkingsmeldinger) filtreres bort, ellers drukner de ekte treffene. Exchange Online krever modulen ExchangeOnlineManagement; der har Get-MessageTraceV2 erstattet Get-MessageTrace.

Søk etter emne

Finner meldinger via en del av emnet: den vanlige veien når brukeren bare kan si "fakturaen min fra i går".

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -MessageSubject "Rechnung" `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" } |
  Sort-Object Timestamp |
  Format-Table Timestamp, EventId, Sender, @{N="Recipients";E={$_.Recipients -join ","}}, MessageSubject -AutoSize

journalctl / grep (Postfix) Innebygd

journalctl -u postfix --since "48 hours ago" | grep -i "Rechnung" | tail -40
grep -i "Rechnung" /var/log/mail.log | tail -40

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

# V2 kennt keinen Betreff-Parameter, darum nachträglich filtern.
Get-MessageTraceV2 -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Where-Object { $_.Subject -like "*Rechnung*" } |
  Format-Table Received, SenderAddress, RecipientAddress, Subject, Status -AutoSize

On-prem treffer -MessageSubject en delstreng. I Exchange Online filtrerer kommandoen i etterkant, fordi Get-MessageTraceV2 ikke har noen emneparameter.

Spor én melding

Viser hver stasjon for en bestemt melding via Message-ID, på tvers av alle transportservere.

Message-ID aus dem Kopf

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -MessageId "<a1b2c3@example.com>" `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Sort-Object Timestamp |
  Format-Table Timestamp, ServerHostname, EventId, Source, SourceContext, @{N="Recipients";E={$_.Recipients -join ","}} -AutoSize

grep (Postfix) Innebygd

qid=$(grep -F "<a1b2c3@example.com>" /var/log/mail.log | grep -oE "[A-F0-9]{8,}" | head -1)
echo "Queue-ID: $qid"
grep "$qid" /var/log/mail.log

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

Get-MessageTraceV2 -MessageId "<a1b2c3@example.com>" `
  -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Format-List Received, SenderAddress, RecipientAddress, Subject, Status, MessageTraceId

Message-ID står i meldingshodet (vår analysator for e-posthoder viser den). Ta med vinkelparentesene nøyaktig som i hodet.

Leveringsvei med tidsforskyvning

Leveringsveien som kjede med sekunder siden første hendelse: viser hvilken stasjon som tapte tiden.

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

$log = Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -MessageId "<a1b2c3@example.com>" -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Sort-Object Timestamp
$first = $log[0].Timestamp
$log | Select-Object @{N="+Sek";E={[math]::Round(($_.Timestamp - $first).TotalSeconds,1)}},
  Timestamp, ServerHostname, EventId, Source, @{N="Detail";E={$_.RecipientStatus -join " "}} |
  Format-Table -AutoSize
# Kette: RECEIVE -> SUBMIT -> TRANSFER -> SEND (nach aussen) bzw. DELIVER (ins Postfach).

grep / awk (Postfix) Innebygd

qid=$(grep -F "<a1b2c3@example.com>" /var/log/mail.log | grep -oE "[A-F0-9]{8,}" | head -1)
grep "$qid" /var/log/mail.log | awk '{ print $1, $2, $3, $6, $7, $8, $9, $10 }'

Exchange Online

Get-MessageTraceDetailV2 Tilleggsverktøy

$m = Get-MessageTraceV2 -MessageId "<a1b2c3@example.com>" -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date)
$m | ForEach-Object {
  Get-MessageTraceDetailV2 -MessageTraceId $_.MessageTraceId -RecipientAddress $_.RecipientAddress |
    Format-Table Date, Event, Action, Detail -AutoSize
}

EventId-kjeden lyder RECEIVE, SUBMIT, TRANSFER og til slutt SEND (utgående) eller DELIVER (til postboksen). FAIL eller DEFER markerer bruddpunktet.

Mislykkede leveringer

Grupperer FAIL-hendelsene etter årsak, de hyppigste først: finner mønsteret bak et avbrudd i stedet for enkelttilfeller.

Letzte 48 Stunden

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 -EventId FAIL `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" } |
  Group-Object { $_.RecipientStatus -join " " } -NoElement |
  Sort-Object Count -Descending | Select-Object -First 15 Count, Name

grep (Postfix) Innebygd

grep "status=bounced" /var/log/mail.log |
  grep -oE "said: [0-9]{3}[ -][0-9.]* [^)]*" | sort | uniq -c | sort -rn | head -15

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

Get-MessageTraceV2 -Status Failed -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Group-Object RecipientAddress -NoElement | Sort-Object Count -Descending | Select-Object -First 15

Finn trege leveringer

Beregner tiden fra mottak til levering per melding og viser de tregeste: det dokumenterte svaret på "e-posten er så treg".

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

$log = Get-TransportService | Get-MessageTrackingLog -WarningAction 0 `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" }
$log | Group-Object MessageId | ForEach-Object {
  $recv = ($_.Group | Where-Object EventId -eq "RECEIVE" | Sort-Object Timestamp | Select-Object -First 1).Timestamp
  $done = ($_.Group | Where-Object { $_.EventId -in "DELIVER", "SEND" } | Sort-Object Timestamp | Select-Object -Last 1).Timestamp
  if ($recv -and $done) {
    [pscustomobject]@{ Sekunden = [math]::Round(($done - $recv).TotalSeconds, 1); Betreff = $_.Group[0].MessageSubject }
  }
} | Sort-Object Sekunden -Descending | Select-Object -First 15

grep (Postfix) Innebygd

grep -oE "delay=[0-9.]+" /var/log/mail.log | cut -d= -f2 | sort -rn | head -15
# delay = Gesamtzeit von der Annahme bis zur Zustellung in Sekunden.

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

# EXO liefert keine Laufzeit je Nachricht; die Detailansicht zeigt die Stationen mit Zeitstempel.
Get-MessageTraceV2 -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Sort-Object Received -Descending | Select-Object -First 25 Received, SenderAddress, RecipientAddress, Subject, Status

Toppavsendere og toppmottakere

Teller volum per avsender og mottaker: nyttig ved spørsmål om belastning og når en postboks mistenkes å være kompromittert.

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

$log = Get-TransportService | Get-MessageTrackingLog -WarningAction 0 -EventId RECEIVE `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" }
"--- Top-Absender ---"
$log | Group-Object Sender -NoElement | Sort-Object Count -Descending | Select-Object -First 10
"--- Top-Empfaenger ---"
$log | ForEach-Object { $_.Recipients } | Group-Object -NoElement | Sort-Object Count -Descending | Select-Object -First 10

grep (Postfix) Innebygd

grep -oE "from=<[^>]+>" /var/log/mail.log | sort | uniq -c | sort -rn | head -10
grep -oE "to=<[^>]+>" /var/log/mail.log | sort | uniq -c | sort -rn | head -10

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

$t = Get-MessageTraceV2 -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date)
"--- Top-Absender ---"
$t | Group-Object SenderAddress -NoElement | Sort-Object Count -Descending | Select-Object -First 10
"--- Top-Empfaenger ---"
$t | Group-Object RecipientAddress -NoElement | Sort-Object Count -Descending | Select-Object -First 10

Filtrer etter EventId

Viser alle hendelser av én type, for eksempel bare FAIL, DEFER eller DELIVER.

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 -EventId FAIL `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Sort-Object Timestamp |
  Format-Table Timestamp, ServerHostname, Sender, @{N="Recipients";E={$_.Recipients -join ","}}, MessageSubject -AutoSize
# Gaengige EventIds: RECEIVE SEND DELIVER FAIL DEFER RESOLVE EXPAND REDIRECT DROP SUBMIT TRANSFER

grep (Postfix) Innebygd

grep -oE "status=[a-z]+" /var/log/mail.log | sort | uniq -c | sort -rn

Exchange Online

Get-MessageTraceV2 Tilleggsverktøy

# EXO kennt keine EventIds, sondern einen Status:
# Delivered, Failed, Pending, Quarantined, FilteredAsSpam, Expanded
Get-MessageTraceV2 -Status Failed -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Format-Table Received, SenderAddress, RecipientAddress, Subject, Status -AutoSize

Exchange Online har ingen EventId, men en status (Delivered, Failed, Pending, Quarantined, FilteredAsSpam).

Serveroversikt

Teller hendelsene til en server per type og viser om sporingsloggen i det hele tatt er aktivert og hvor lenge den lagres.

Exchange on-prem

Get-MessageTrackingLog (Exchange) Innebygd

Get-MessageTrackingLog -Server mbx01.example.com -WarningAction 0 `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" } |
  Group-Object EventId -NoElement | Sort-Object Count -Descending

Get-TransportService Innebygd

Get-TransportService | Select-Object Name, MessageTrackingLogEnabled, MessageTrackingLogPath, MessageTrackingLogMaxAge

Exchange Online

Get-ConnectionByClientTypeReport Tilleggsverktøy

# EXO hat keine einzelnen Server; die Auswertung laeuft ueber Mandant-Berichte.
Get-MailTrafficATPReport -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) | Format-Table Date, EventType, MessageCount

Som standard beholder Exchange sporingslogger i 30 dager; eldre hendelser kan ikke lenger dokumenteres.

Eksporter til saker

Skriver resultatet som CSV med semikolon og UTF-8: åpnes direkte i Excel og kan legges ved en sak.

Exchange on-prem

Export-Csv (Exchange) Innebygd

Get-TransportService | Get-MessageTrackingLog -WarningAction 0 -Sender "sender@example.com" `
  -Start (Get-Date).AddHours(-48) -End (Get-Date) -ResultSize Unlimited |
  Where-Object { $_.Sender -notmatch "HealthMailbox" } |
  Select-Object Timestamp, ServerHostname, EventId, Source, Sender,
    @{N="Recipients";E={$_.Recipients -join ";"}}, MessageSubject,
    @{N="Status";E={$_.RecipientStatus -join " "}} |
  Sort-Object Timestamp |
  Export-Csv .\tracking.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"

grep / awk (Postfix) Innebygd

grep -iE "from=<sender@example.com>" /var/log/mail.log |
  awk '{ print $1" "$2" "$3";"$4";"$6" "$7" "$8 }' > tracking.csv
head -5 tracking.csv

Exchange Online

Export-Csv (Exchange Online) Tilleggsverktøy

Get-MessageTraceV2 -SenderAddress "sender@example.com" `
  -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
  Export-Csv .\trace.csv -NoTypeInformation -Encoding UTF8 -Delimiter ";"

Utdataene inneholder avsender, mottaker og emne. Kontroller om det er akseptabelt for mottakerne før du deler det.

Andre områder