Лучший отвечающий
Отправка первого письма

Вопрос
-
Добрый день, есть скрипт, который отправляет приветсвенное письмо. В последнее время скрипт стал странно себя вести. Создаю 3 пользователей подряд, 2 ничего не приходит, одному приходит аж 3 письма. Может вообще не отправить. Ошибок в логах никаких нет. В чем может быть проблема? Скрипт взят отсюда
С уважением, Спицкий Никита
3 сентября 2015 г. 3:58
Ответы
-
Предлагаю добавить в скрипт логирование, чтобы он в отдельный TXT файл записывал информацию о каждом вызове. Например:
$today = get-date Write-Output $today >> C:\Script\maillog.txt Write-Output $Ualias $pSMTP >> C:\Script\maillog.txt
Можете добавить еще переменные для вывода.
- Помечено в качестве ответа Petko KrushevMicrosoft contingent staff, Moderator 21 сентября 2015 г. 10:36
3 сентября 2015 г. 13:35 -
Да, конечно перед закрывающими фигурными скобками. Можно даже перед всеми :) Важно понять, отрабатывает ли скрипт вообще. И если да, то проверить отработку условий. Тогда будет понятно, что надо поменять. Грубо говоря, эти строки будут работать как чекпоинт при отладке.
- Помечено в качестве ответа Никита Спицкий 3 ноября 2015 г. 5:53
2 ноября 2015 г. 14:31
Все ответы
-
Предлагаю добавить в скрипт логирование, чтобы он в отдельный TXT файл записывал информацию о каждом вызове. Например:
$today = get-date Write-Output $today >> C:\Script\maillog.txt Write-Output $Ualias $pSMTP >> C:\Script\maillog.txt
Можете добавить еще переменные для вывода.
- Помечено в качестве ответа Petko KrushevMicrosoft contingent staff, Moderator 21 сентября 2015 г. 10:36
3 сентября 2015 г. 13:35 -
Извиняюсь, не занимался данной задачей давно. Можете подсказать в каком именно месте указать нужно логирование? Скрипт ниже:
<?xml version="1.0" encoding="utf-8" ?> <Configuration version="1.0"> <Feature Name="Welcome Email" Cmdlets="New-Mailbox,Enable-Mailbox"> <ApiCall Name="OnComplete"> if($succeeded) { if ($provisioningHandler.TaskName -eq "New-Mailbox") { # Replace place holder. $USRdname=$provisioningHandler.UserSpecifiedParameters["Name"] $tempmsg= [string] (get-content ("D:\TempData\welcome.htm")) $tempmsg = $tempmsg -replace "NewUser00",$USRdname # Picking Primary SMTP address,saving to $pSMTP to send email. $Ualias=$provisioningHandler.UserSpecifiedParameters["Alias"] $pSMTP = (get-mailbox $Ualias | select-object PrimarySMTPAddress | Format-Wide | Out-String ).trim() } elseif ($provisioningHandler.TaskName -eq "Enable-Mailbox") { # Picking Primary SMTP address,saving to $epSMTP to send email. $eUalias=$provisioningHandler.UserSpecifiedParameters["Alias"] $dName = (get-mailbox $eUalias | select-object Name | Format-Wide | Out-String ).trim() $pSMTP = (get-mailbox $eUalias | select-object PrimarySMTPAddress | Format-Wide | Out-String ).trim() # Replace place holder. $tempmsg= [string] (get-content ("D:\TempData\welcome.htm")) $tempmsg = $tempmsg -replace "NewUser00",$dName } # Please give the correct HUB serve IP address in the following line. $HUBServer="10.87.1.5" $EMail =new-object net.mail.mailmessage $HUBTask = new-object net.mail.smtpclient($HUBServer) # Email with attachment will be sent from the address given in the following line. $EMail.From="noreply@noname.ru" # Email with attachment will be sent TO the address given in the following line. $EMail.To.add($pSMTP) # Email Subject and Body details are speficied in following lines $EMail.Subject="Welcome to noname" $EMail.Body= $tempmsg $Email.IsBodyHtml = $true $HUBTask.send($EMail) } </ApiCall> </Feature> </Configuration>
С уважением, Спицкий Никита
- Изменено Никита Спицкий 29 октября 2015 г. 5:56
29 октября 2015 г. 5:55 -
Можете добавить перед каждой скобкой, например. Чтобы видеть, что выполняется. Например так:
$today = get-date $input = "Position 001" Write-Output $today >> C:\Script\maillog.txt Write-Output $input >> C:\Script\maillog.txt
Можно еще добавить интересующие вас переменные.
- Изменено Tema_BYMVP 29 октября 2015 г. 9:34
29 октября 2015 г. 9:34 -
Извиняюсь, а перед какой скобкой? Фигурной?
С уважением, Спицкий Никита
2 ноября 2015 г. 4:29 -
Да, конечно перед закрывающими фигурными скобками. Можно даже перед всеми :) Важно понять, отрабатывает ли скрипт вообще. И если да, то проверить отработку условий. Тогда будет понятно, что надо поменять. Грубо говоря, эти строки будут работать как чекпоинт при отладке.
- Помечено в качестве ответа Никита Спицкий 3 ноября 2015 г. 5:53
2 ноября 2015 г. 14:31 -
Добрый день, сделал логирование, проверил, письмо пришло, в логе запись есть. Подозрение есть, что письмо не приходило по причине проблем загруженности сервера, коотрые я решил только пару дней назад. Позвольте еще вопрос, а можно ли сделать как-то чтобы в случае ошибки ее текст записывался в лог. И так понимаю, что вместо Position001 можно написать что угодно, это ведь просто вывод текста в файл?
ЗЫ. Благодарен за помощь!
С уважением, Спицкий Никита
3 ноября 2015 г. 5:53 -
нашел несколько форумов по логированию скриптов, думаю разберусь сам. Еще раз спасибо за помощь!
С уважением, Спицкий Никита
3 ноября 2015 г. 6:28 -
Добрый день. Собственно, хотел еще спросить, я включил то, что Вы писали. Проблема сохранилась. Письмо пришло 1 раз. Второй раз уже нет. На третий я отключил существующий ящик, включил по новой, но письмо не пришло, хотя судя по логам скрипт выполнился.
С уважением, Спицкий Никита
5 ноября 2015 г. 4:16