none
Приветственное сообщение Scripting Agent

    Вопрос

  • Здравствуйте!

    Сервер Exchange 2010 

    Есть необходимость отправлять пользователям приветственное сообщение при первом входе в электронную почту. Есть скрипт:

    <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 ("c:\welcome\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 $pSMTP 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 ("c:\welcome\welcome.htm"))
                    $tempmsg = $tempmsg -replace "NewUser00",$dName
    }
                    # Please give the correct HUB serve IP address in the following line.
    
                    $HUBServer="mail.company.com"
                    $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="admin@company.com"
    
                    # Email with attachment will be sent TO the address given in the following line.
    
                    $EMail.To.add($pSMTP)
    
                    # Email Subject and Body details are specified in following lines
    
                    $EMail.Subject="Welcome!!!"
    
                    $EMail.Body= $tempmsg
    
                    $Email.IsBodyHtml = $true
    
                    $HUBTask.send($EMail)
    
       }
    
      </ApiCall>
    
    </Feature>
    
    # Script to send new email ends here


    Запускаю Scripting  Agent.

    При создании почтового ящика пользователя вылетает warning:

    Сводка: всего элементов: 1. Успешно: 1, с ошибками: 0.
    Прошло времени: 00:00:06


    Иванов Иван Иванович
    Завершено

    Предупреждение:
    Агент расширения командлета с индексом 5 создал исключение в OnComplete(). Исключение: Microsoft.Exchange.Provisioning.ProvisioningException: ScriptingAgent: в ходе вызова 

    сценария для API OnComplete возникло исключение: Исключение при вызове "Send" с "1" аргументами: "Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.7.1 Client was not authenticated". ---> System.Management.Automation.MethodInvocationException: Исключение при вызове "Send" с "1" аргументами: "Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.7.1 Client was not authenticated" ---> System.Net.Mail.SmtpException: Серверу SMTP требовалось защищенное соединение, или подлинность клиента не была установлена. Ответ сервера: 5.7.1 Client was not authenticated
       в System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
       в System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
       в System.Net.Mail.SmtpClient.Send(MailMessage message)
       в Send(Object , Object[] )
       в System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object[] arguments, MethodInformation methodInformation, Object[] originalArguments)
       --- Конец трассировки внутреннего стека исключений ---
       в System.Management.Automation.DotNetAdapter.AuxiliaryMethodInvoke(Object target, Object[] arguments, MethodInformation methodInformation, Object[] originalArguments)
       в System.Management.Automation.DotNetAdapter.MethodInvokeDotNet(String methodName, Object target, MethodInformation[] methodInformation, Object[] arguments)
       в System.Management.Automation.Adapter.BaseMethodInvoke(PSMethod method, Object[] arguments)
       в System.Management.Automation.ParserOps.CallMethod(Token token, Object target, String methodName, Object[] paramArray, Boolean callStatic, Object valueToSet)
       в System.Management.Automation.MethodCallNode.InvokeMethod(Object target, Object[] arguments, Object value)
       в System.Management.Automation.MethodCallNode.Execute(Array input, Pipe outputPipe, ExecutionContext context)
       в System.Management.Automation.ParseTreeNode.Execute(Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
       в System.Management.Automation.StatementListNode.ExecuteStatement(ParseTreeNode statement, Array input, Pipe outputPipe, ArrayList& resultList, ExecutionContext context)
       --- Конец трассировки внутреннего стека исключений ---
       в Microsoft.Exchange.ProvisioningAgent.ScriptingAgentHandler.OnComplete(Boolean succeeded, Exception e)
       в Microsoft.Exchange.Provisioning.ProvisioningLayer.OnComplete(Task task, Boolean succeeded, Exception exception)

    Завершено выполнение команды командной консоли Exchange:
    Enable-Mailbox -Identity 'company.com/users/Иванов Иван Иванович' -Alias 'ivantest' -Database 'DBEXCHANGE'

    Прошло времени: 00:00:06

    Как можно решить эту проблему?


    9 августа 2018 г. 5:57

Ответы

  • Указать учетные данные для пользователя, который указан в поле From:

    $HUBTask.Credentials = New-Object System.Net.NetworkCredential( "UserName" , 'Password');

    Если потребуется SSL :

    $HUBTask.EnableSsl = $True


    • Изменено KazunEditor 10 августа 2018 г. 5:42
    • Помечено в качестве ответа KazunEditor 14 августа 2018 г. 7:46
    10 августа 2018 г. 5:42
    Отвечающий

Все ответы

  •   Здравствуйте,

    Переместил вашу тему в более подходящий раздел.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

    10 августа 2018 г. 4:56
    Модератор
  • Указать учетные данные для пользователя, который указан в поле From:

    $HUBTask.Credentials = New-Object System.Net.NetworkCredential( "UserName" , 'Password');

    Если потребуется SSL :

    $HUBTask.EnableSsl = $True


    • Изменено KazunEditor 10 августа 2018 г. 5:42
    • Помечено в качестве ответа KazunEditor 14 августа 2018 г. 7:46
    10 августа 2018 г. 5:42
    Отвечающий