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

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

Теги

 

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

hMailServer — переадресация писем от DMARC защищённых доменов

Коллеги сообщили об интересной проблеме. Если hMailServer переадресует почту с mail.ru на gmail.com, то письма без вложений доходят, а с вложениями не доходят с ошибкой: Unauthenticated email from mail.ru is not accepted due to domain's DMARC policy. Проблема связана с тем, что домен mail.ru имеет DMARC запись, запрещающую отправлять их письма со сторонних серверов.

Теги

Cisco ESA C190 — LDAP Authentication

Настраиваем доменную аутентификацию на Cisco ESA C190 — Email Security Appliance. Гораздо проще управлять правами пользователей из домена. Сделаем вход в веб интерфейс ESA по доменному логину и паролю.