Как проще всего создать письмо-приветствие


Не секрет, что правильная постановка задачи может многократно упростить и удешевить решение.

Вот пример. Иной раз при создании почтовых ящиков требуется положить в новый почтовый ящик письмо-приветствие с полезной для нового сотрудника информацией. Решений может быть несколько: можно просто написать инструкцию администратору, какие действия ему нужно выполнить, и включить в эти действия отправку письма-приветствия или поручить это отделу кадров или начальнику нового сотрудника; можно решить задачу не организационно, а технически – создавать новые почтовые ящики скриптом и сделать в нем шаг по отправке письма-приветствия; можно использовать Script Agent, который имеется в Exchange, чтобы автоматизировать дополнительные действия при создании нового почтового ящика; можно кастомизировать Outlook, чтобы при создании профиля создавалось письмо-приветствие; можно … и т.д.

Но рассмотрим частную ситуацию. Зададим ключевой вопрос: «Через какое время новый пользователь может начать работать?» Если вы висите на телефоне и создаете пользователю все необходимое налету, то все действия должны выполняться немедленно и синхронно. Такая ситуация может быть в маленькой компании. В средних и больших компаниях процесс по заведению учетных записей новым пользователям совсем иной: неизбежно существуют формальные процедуры, которые могут выполняться несколько дней. Если пользователь получит реквизиты и приступит к работе лишь спустя сутки или более, то большинство операций можно сделать асинхронными и существенно их упростить. Так для отправки письма-приветствия можно использовать простой скрипт, который будет каждую ночь делать выборку почтовых ящиков по полю WhenMailboxCreated и отправлять в такие почтовые ящики письмо-приветствие. Шаблон письма может быть размещен на сетевой папке, а права на его правку делегированы нужным сотрудникам. При такой частной ситуации и такой постановке задачи решение получается простым, гибким, дешевым и надежным.

$body = Get-Content \\server\share\Welcome.html
$mailboxes = Get-Mailbox | Where-Object {$_.WhenMailboxCreated –ge ((Get-Date).Adddays(-1))} | Select -ExpandProperty WindowsEmailAddress
$mailboxes | % { send-mailmessage -from "Wellcome <welcome@contoso.com>" -to $_ -subject "Welcome!" -body $body -BodyAsHtml -smtpServer smtp.contoso.com }
Реклама

комментариев 7

  1. Send-MailMessage — плохо, ибо анонимно. Только EWS — только хардкор :)

  2. В 3й строке присутствует амперсанд, powershell не знает его((, не работает — Ampersand not allowed.. Конечно, я перепишу без его использования, но интересно, как у автора получилось использовать скрипт с ним?

    • Это движок ломает форматирование

      • Спасибо что поправили!!!
        Пока что-то застрял, не хочет тело письма вставлять в отправку
        (Не удается преобразовать «System.Object[]» в тип «System.String», необходимый для параметра «Body».)

      • Ничего лучше чем
        $body = Get-Content message.html
        $body = [string]$body
        не придумал, но вместо кирилицы знаки вопроса.

      • Жаль что не могу изменить свой каммент, постоянно отвечаю, некрасиво. НО нашел решение, оставлю здесь если кому надо. Итого, что бы работало на 100% нужно в скрипте заменить:

        $body = [string](Get-Content «\\server\share\Welcome.html»)
        , что бы не было знаков вопроса добавить:
        $enc = New-Object System.Text.utf8encoding
        и потом в саму отправку указать эту кодировку для -Encoding
        $mailboxes | % { send-mailmessage -from «Wellcome » -to $_ -subject «Welcome!» -Encoding $enc -body $body -BodyAsHtml -smtpServer smtp.contoso.com }

        Может кодировку можно сразу вписать в строчку с отправкой, не через переменную.

  3. Можно короче:
    Get-Content -Encoding UTF8 -ReadCount 0

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: