Обновление SSL-сертификатов LetsEncrypt для MS Exchange (autodiscover и webmail)

1. Через certbot выпустить сертификаты letsencrypt:

$ sudo certbot certonly --manual -d webmail.mydomain.ru --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01
$ sudo certbot certonly --manual -d autodiscover.mydomain.ru --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01

Для подтверждения домена редактировать записи DNS на хостинге. Проверять, что DNS-записи обновились, через любой Linux:

$ dig _acme-challenge.autodiscover.ural-clinic.ru txt @8.8.8.8

2. Забрать готовые сертификаты fullchain.pem* и ключи privkey.pem* из папки /etc/letsencrypt/archive/
3. Сделать из файлов .pem сертификаты .pfx через программу openssl:

>"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -inkey privkey3.pem -in fullchain3.pem -export -out autodicover_20190417.pfx

4. Загрузить в MS Exchange сертификаты .pfx («Import Exchange Certificate...»)

5. Выбрать для чего использовать сертификаты (Assign Services to Certificate):
webmail — IMAP, POP, SMTP, IIS
autodiscover — SMTP

Powershell: Пример скрипта отправки email

Этот powershell-скрипт отправляет текстовое сообщение по электронной почте при условии, что авторизация на smtp-сервере не требуется. Например для MS Exchange компьютер, на котором выполняется скрипт, должен быть в списке Allow Relay на почтовом сервере.

$smtpServer = "mail.mydomain.local"
 $msg = New-Object net.mail.mailmessage
 $smtp = New-Object net.mail.smtpclient($smtpServer)
 $msg.from = "test@mydomain.ru"
 $msg.replyto = "user1@mydomain.ru"
 $msg.to.add("user2@mydomain.ru")
 $msg.subject = "Test message"
 $msg.body = "This is test message Это тестовое сообщение"
 $smtp.send($msg)

В данном случае письмо отправится на адрес user2@mydomain.ru

Powershell Exchange узнать размер папок в почтовом ящике

Powershell Exchange узнать размер папок в почтовом ящике

[PS] C:\Windows\system32>Get-MailboxFolderStatistics -Identity PupkinVV | ft name, foldersize

 

Powershell Exchange Вывод списка сотрудников и их e-mail адресов по Organization Unit

Вывод списка сотрудников и их e-mail адресов по Organization Unit

Get-Mailbox -OrganizationalUnit Сотрудники -SortBy name | ft name, primarysmtpaddress > mailboxes.txt

 

Exchange Powershell Добавление почтового ящика новому пользователю

Exchange Powershell Добавление почтового ящика новому пользователю

Enable-Mailbox -Identity 'somedomain.local/someOU/Сотрудники/Пупкин Василий' -Alias 'PupkinVV'