Как получить уведомление об обмене почтовой очередью

Я хочу получить уведомление о полных деталях get-queue, когда моя очередь обмена достигает максимального количества сообщений, вот что я имею сейчас, что дает вам детали, но не в правильном формате.

function check_queue
{
$a = get-queue | measure-object MessageCount -max
$b = Get-Queue | Out-File -filepath C:\getQueue.txt

if ($a.Maximum -gt 1000)
{
send_email $a.Maximum
}
}

function send_email
{param ($queue_size)

$emailFrom = "exchange@xyz.com"
$emailTo = "test@xyz.com"
$subject = "Exchange Max Mail QUEUE"
$body = Get-Queue | Out-String
$smtpServer = "mail.xyz.com"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

}

check_queue

Вот вывод, который не ясен в формате, когда я получаю уведомление:

Identi DeliveryType Status MessageCount Velocity RiskLevel OutboundIPPool NextH
ty                                                                        opDom
                                                                          ain  
------ ------------ ------ ------------ -------- --------- -------------- -----
xy... SmtpDeliv... Ready  0            0        Normal    0              ma...
xy... SmtpDeliv... Ready  0            0        Normal    0              ma...
xy... SmtpDeliv... Ready  0            0        Normal    0              ma...
xy... SmtpDeliv... Ready  0            0        Normal    0              ma...
xy... SmtpRelay... Ready  0            0        Normal    0              ed...
xy... Undefined    Ready  0            0        Normal    0              Su...
xy... ShadowRed... Ready  20           0        Normal    0              gr...

1 ответ

Если вы хотите, чтобы все подробности об объекте были в вашем выходном файле, вы можете использовать командлеты формата. например, format-custom, format-list $body = get-queue | format-list | out-string

Другие вопросы по тегам