none
Отправка первого письма RRS feed

  • Вопрос

  • Добрый день, есть скрипт, который отправляет приветсвенное письмо. В последнее время скрипт стал странно себя вести. Создаю 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
    Можете добавить еще переменные для вывода.

    3 сентября 2015 г. 13:35
  • Да, конечно перед закрывающими фигурными скобками. Можно даже перед всеми :) Важно понять, отрабатывает ли скрипт вообще. И если да, то проверить отработку условий. Тогда будет понятно, что надо поменять. Грубо говоря, эти строки будут работать как чекпоинт при отладке.
    2 ноября 2015 г. 14:31

Все ответы

  • Предлагаю добавить в скрипт логирование, чтобы он в отдельный TXT файл записывал информацию о каждом вызове. Например:

    $today = get-date
    
    Write-Output $today >> C:\Script\maillog.txt
    
    Write-Output $Ualias $pSMTP  >> C:\Script\maillog.txt
    Можете добавить еще переменные для вывода.

    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: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
  • Да, конечно перед закрывающими фигурными скобками. Можно даже перед всеми :) Важно понять, отрабатывает ли скрипт вообще. И если да, то проверить отработку условий. Тогда будет понятно, что надо поменять. Грубо говоря, эти строки будут работать как чекпоинт при отладке.
    2 ноября 2015 г. 14:31
  • Добрый день, сделал логирование, проверил, письмо пришло, в логе запись есть. Подозрение есть, что письмо не приходило по причине проблем загруженности сервера, коотрые я решил только пару дней назад. Позвольте еще вопрос, а можно ли сделать как-то чтобы в случае ошибки ее текст записывался в лог. И так понимаю, что вместо Position001 можно написать что угодно, это ведь просто вывод текста в файл?

    ЗЫ. Благодарен за помощь!


    С уважением, Спицкий Никита

    3 ноября 2015 г. 5:53
  • нашел несколько форумов по логированию скриптов, думаю разберусь сам. Еще раз спасибо за помощь!

    С уважением, Спицкий Никита

    3 ноября 2015 г. 6:28
  • Добрый день. Собственно, хотел еще спросить, я включил то, что Вы писали. Проблема сохранилась. Письмо пришло 1 раз. Второй раз уже нет. На третий я отключил существующий ящик, включил по новой, но письмо не пришло, хотя судя по логам скрипт выполнился. 

    С уважением, Спицкий Никита

    5 ноября 2015 г. 4:16