Перейти к основному содержанию

hMailServer — делаем автоответчик

hmailserver

В hMailServer есть встроенная возможность посылать автоответ. Однако, функционал автоответчика не богат, к примеру, нет возможности отправить HTML сообщение. Пишем собственную функцию автоответа.

Заходим в админку hMailServer и создаём учётную запись в выбранном домене, например, mailtest@internet-lab.ru. При отправке сообщения на этот адрес должен сработать наш новый автоответчик.

mail

Включаем скрипты: Настройки > Дополнительно > Скрипты.

mail

Сохранить.

Кнопка Показать откроет директорию с файлом скриптов. По умолчанию это C:\Program Files (x86)\hMailServer\Events\EventHandlers.vbs. Редактируем файл EventHandlers.vbs. Следует помнить, что после внесения изменений в файл нужно нажать кнопку Перезагрузить, при этом изменения внесутся в память hMailServer. Кнопка Проверка проверяет код на наличие ошибок.

Добавляем код:

  • Public oApp
    Public Const user = "Admin"
    Public Const pwd = "MySuperPuperPa$$word"
    
    Sub MailTestReply(oMessage)
    	set oApp = CreateObject("hMailServer.Application")
    	call oApp.Authenticate(user, pwd)
    	dim oReply
    	dim sHTMLReplyText
    	dim sReplyText
    	sHTMLReplyText = "<HTML><head><head/><body>" & vBNewLine & _
    	"Это письмо содержит файл JPG. Письмо предназначено для проверки почтового сервера. " & vBNewLine & _
    	"Если вы получили это письмо, то ваш почтовый сервер работает.<BR><BR>" & vBNewLine & _
    	"<a href=""https://internet-lab.ru"">internet-lab.ru</a><BR><BR>" & vBNewLine & _
    	"This email contains an JPG file. The email is intended for checking the mail server. " & vBNewLine & _
    	"If you receive this mail, then your mail server is working.<BR><BR>" & vBNewLine & _
    	"---------<BR><BR>" & vBNewLine & _
    	"</body></HTML>"
    	sHTMLReplyText = StrConv(sHTMLReplyText,"UTF-8","ISO-8859-1")
    	set oReply = CreateObject("hMailServer.Message")
    	oReply.From = "Mail Test <mailtest@internet-lab.ru>"
    	oReply.FromAddress = "mailtest@internet-lab.ru"
    	oReply.HeaderValue("Return-Path")="mailtest@internet-lab.ru"
    	oReply.HeaderValue("Reply-To")="noreply@nternet-lab.ru"
    	oReply.Subject = "Mail test from internet-lab.ru" 	
    	oReply.Attachments.Add ("C:\danger\keepcalm.jpg")	
    	oReply.AddRecipient oMessage.From,oMessage.FromAddress
    	if oMessage.HasBodyType("text/HTML") then
    		oReply.HTMLBody = sHTMLReplyText & oMessage.HTMLBody
    	else oReply.HTMLBody = sHTMLReplyText & oMessage.Body
    	end if
    	oReply.Save
    End Sub
    
    Function StrConv(Text,SourceCharset,DestCharset)
    	Set Stream=CreateObject("ADODB.Stream")
    	Stream.Type=2
    	Stream.Mode=3
    	Stream.Open
    	Stream.Charset=DestCharset
    	Stream.WriteText Text
    	Stream.Position=0
    	Stream.Charset=SourceCharset
    	StrConv=Stream.ReadText
     End Function

mail

Здесь:

  • oApp — объект для hMailServer.Application, вынесен в глобальные для использования в других функциях
  • user — администратор hMailServer, вынесен в глобальные для использования в других функциях
  • pwd — пароль администратора hMailServer, вынесен в глобальные для использования в других функциях
  • MailTestReply — функция автоответчика
  • StrConvert — вспомогательная функция для конвертации текста, нужна для поддержки кириллицы

Функция MailTestReply создаёт HTML сообщение для ответа, прикрепляет вложение, кодирует текст для поддержки кириллицы. Дополнительно в письмо добавляется входящий текст. Сообщение отправляется тому, кто написал.

Настроим ящик mailtest@internet-lab.ru, Переключаемся на вкладку правила.

mail

Добавляем новое правило, у меня уже добавлено, назвал его: "MailTest".

mail

Добавляем критерий: "Тема сообщения Keep Calm and Reply". Т.е. правило будет срабатывать для всех сообщений с темой "Keep Calm and Reply". Это сделано в тестовых целях, критерии можете создать любые.

mail

Добавляем действие "Выполнить скрипт".

mail

Выполняем скрипт MailTestReply. Сохраняем изменения.

Проверка автоответчика

Работу автоответчика можно проверить, отправив письмо:

  • На адрес: mailtest@internet-lab.ru
  • С темой: Keep Calm and Reply

Если вы получите это письмо, то автоответчик работает.

mail test

Теги

 

Похожие материалы

Тестовый вирус EICAR

Для проверки антивирусов существует специальный тестовый командный файл eicar.com. Файл не содержит фрагментов вирусного кода, поэтому его безопасно пересылать. Большинство антивирусов реагируют на него как на вирус, обычно указывая соответствующее название, к примеру EICAR-AV-Test.

Теги

ghettoVCB — чиним почту

Настраивал я как-то резервное копирование виртуальных машин с помощью ghettoVCB  на отдельно стоящем гипервизоре ESXi 7. Всё отлично, резервное копирование работает, но почта не отправляется.