На всех версиях Windows Server возможно с помощью встроенных средств поднять собственный SMTP сервер . Такой SMTP сервер внутри организации может работать в качестве почтового релея, принимая и пересылая наружу SMTP сообщения от различных устройств (к примеру, сендеров, сканеров, устройств СКД и пр.) и приложений (веб приложения, SQL Reporting Services, SharePoint), которым необходимо иметь возможность отправлять почту через SMTP сервер. Ведь не всегда целесообразно разворачивать полноценную почтовую инфраструктуру типа Microsoft Exchange Server или других почтовых сервисов.
В этой статье мы покажем, как установить, настроить и протестировать работу SMTP сервера на Windows Server 2012 R2 , который будет функционировать в качестве mail релея . Такой SMTP сервер сможет только отправлять/пересылать почту, средства для получения писем у него отсутствуют.
SMTP сервер – это одна из функций системы, которую можно установить через . Для этого откройте консоль Server Manager Dashboard (servermanager.exe), перейдите в режим Add roles and features и на этапе выбора функций отметьте чекбокс у пункта SMTP Server . Для управления службой SMTP нужно установить консоли управления, которые входят в комплект роли Web Server (IIS), поэтому будет предложено дополнительно установить ряд компонентов IIS.
Оставляем все предлагаемые опции роли Web Server (IIS) и запускаем установку.
После окончания установки компонентов может потребоваться перезагрузка системы.
Управляется SMTP сервер по-прежнему через старую добрую консоль управления Internet Information Services (IIS) Manager 6 . Открыть эту консоль можно через Server Manager: Tools-> Internet Information Services (IIS) 6.0 Manager или командой inetmgr6.exe
В консоли IIS 6 Manager разверните ветку с именем сервера, щёлкните ПКМ по SMTP Virtual Server и откройте его свойства.
На вкладке General , если необходимо, выберите IP адрес, на котором должен отвечать SMTP сервер и включите ведение логов Enable logging (чтобы сохранялась информация обо всех отправленных письмах).
Затем перейдите на вкладку Access .
Здесь нажмите на кнопку Authentication и убедитесь, что разрешен анонимный доступ (Anonymous access ).
Вернитесь на вкладку Access и нажмите кнопку Connection . Здесь можно ограничить с каких устройств могут отправлять почту через наш релей, нужно выбрать опцию Only the list below и указать список IP адресов, не забыв самого себя (127.0.0.1).
Примечание . Как правило, обязательно стоит включать эту опцию, ограничив как минимум список обслуживаемых устройств диапазоном IP адресов. В противном случае ваш SMTP сервер может использоваться спамерами и другими злоумышленниками как открытый релей.
Переходим на вкладку Messages . Здесь указывается административный email, куда будут приходить копии NDR сообщений и ограничения на максимальный размер писем и количество получателей.
Переходим на вкладку Delivery :
Затем нажимаем на кнопку Outbound Security . Здесь указывается, как нужно авторизоваться на сервере, куда будет пересылаться почта. К примеру, если вся почта будет отправляться на почтовый сервер Gmail и уже с него пересылаться адресатам, нужно выбрать Basic authentication , указав в качестве пользователя и пароля данные почтового ящика на сервисе Gmail (в настройках аккаунта Google нужно разрешить отправку через их smtp сервера).
Затем жмем на кнопку Advanced
Здесь указывается FQDN имя нашего smtp сервера. Нажмите кнопку Check DNS чтобы проверить корректность записи в DNS.
Если сервер должен пересылать почту внешнему smtp серверу, нужно указать его имя в поле Smart host (к примеру smtp.gmail.com ).
Сохраняем настройки SMTP сервера.
Примечание . 1. Настройки DNS критичны с точки зрения работоспособности почтовой системы. Если ваш SMTP сервер не может разрешить DNS имена, на которые он пытается отправить письма, доставка не удастся.
Осталось настроить автозапуск службы SMTP сервера. Быстрее всего это сделать из командной строки PoSh:
set-service smtpsvc -StartupType Automatic
Запустим службу:
start-service smtpsvc
Проверим, что служба SMTPSVC запущена:
get-service smtpsvc
Status Name DisplayName
—— —- ————
Running smtpsvc Simple Mail Transfer Protocol (SMTP)
Ну и последнее, что осталось сделать, проверить работу созданного SMTP сервера. Проще всего это сделать, создав на рабочем столе текстовый файл smtp-test-email.txt и скопировав в него следующий текст, заменив имя отправителя и получателя на ваши.
From: [email protected]
To: [email protected]
Subject: Email test
This is the test email
Скопируйте файл smtp-test-email.txt в каталог C:\inetpub\mailroot\Pickup . SMTP сервер следит за появлением файлов в этой каталоге и при обнаружении файла прочтет его содержимое и попытается отправить письмо с данной темой и текстом адресату, указанному в разделе To: .
Проверьте ящик получателя, в него должно упасть такое письмо.
Итак, мы настроили собственный почтовый SMTP релей на Windows Server 2012 R2 и протестировали отправку писем через него.
В этом разделе собран список бесплатных SMTP серверов, где можно создать аккаунт электронной почты для массовой отправки email через скрипт BiMailer . Использование любого из серверов, предполагает предварительную регистрацию, пройти которую можно постеив соответсвующую ссылку из таблицы. Особое внимание при ознакомлении со списком SMTP среверов для рассылки стоит уделить графе Нюансы . Для удобства загрузки в скрипт списков серверов, предусмотрен модуль загрузки SMTP из файла .
Название | Адрес SMTP и реквизиты | Нюансы |
---|---|---|
Яндекс | Адрес сервера: smtp.yandex.ru Порт: 465 SSL/TLS: Да Логин: логин при регистрации (адрес ящика без доменной зоны @yandex.ru) Пароль: указанный при регистрации | Проверяет текст исходящих email сообщений и может заблокировать аккаунт с формулировкой SPAM |
Mail.ru | Адрес сервера: smtp.mail.ru Порт: 465 SSL/TLS: Да Логин: Полное имя почтового ящика, включая логин, @ и домен (*[email protected]) Пароль: указанный при регистрации | Требует подтверждение телефона при регистрации. Не позволяет отправялть письма с чужим email адресом отправителя. По этому скрипт email рассылки настроен заменять поле FROM - на адрес аккаунта mail.ru при отпрвке с этого SMTP |
Рамблер | Адрес сервера: smtp.rambler.ru Порт: 465 SSL/TLS: Да Логин: Полное имя почтового ящика, включая логин, @ и домен (*[email protected]) Пароль: указанный при регистрации | Может заблокировать аккаунт за превышение количества отправляемых email писем в определенный промежуток времени |
Гугл | Адрес сервера: smtp.gmail.com Порт: 465 SSL/TLS: Да Логин: Полное имя почтового ящика, включая логин, @ и домен (*[email protected]) Пароль: указанный при регистрации | Всегда меняет чужой адрес отправителя на адрес аккаунта @gmail.com. В зависимости от способа регистарции требует телефон. Может заблокировать аккаунт за превышение количества отправляемых email писем в определенный промежуток времени. |
Microsoft Outlook |
Адрес сервера: smtp-mail.outlook.com Порт: 25 SSL/TLS: Нет Логин: Полный email адрес, включая логин, @ и домен Пароль: указанный при регистрации | Всегда меняет чужой адрес и имя отправителя на свои в зоне @outlook.com или @hotmail.com. Если аккаунт регистрировался через outlook.com то нужно создать электронную почту по ссылке . Может заблокировать аккаунт за превышение количества отправляемых email писем в определенный промежуток времени. |
QIP.ru | Адрес сервера: smtp.qip.ru Порт: 25 или 2525 SSL/TLS: Нет Логин: Полный email, включая логин, @ и домен (*[email protected]) Пароль: указанный при регистрации |
Требуется телефон при регистрации. Не позволяет отправялть письма с чужим email адресом отправителя. По этому скрипт email рассылки настроен заменять поле FROM - на адрес аккаунта mail.ru при отпрвке с этого SMTP. После регистрации нужно войти в почту и нажать на кнопку создания почтового ящика. Подождать от 1 до 5 минут. |
sibnet.ru | Адрес сервера: smtp.sibnet.ru Порт: 25 SSL/TLS: Нет Логин: Полный почтовый адрес, включая логин, @ и домен (*[email protected]) Пароль: указанный при регистрации | - |
Прасктически все сервера имеют ограничения на рассылку электронной почты. И для проведения компаний оповещения десятками тысяч потребует множество аккаунтов на бесплатных почтовых серверах. Альтернативой может стать свой SMTP сервер, поднятый на VPS.
В этой статье мы расскажем о быстрой и простой настройке SMTP сервера в вашем окружении Jelastic . SMTP расшифровывается как Simple Mail Transfer Protocol. Это стандарт для передачи электронной почты через интернет. SMTP используется, когда электронная почта доставляется от клиента электронной почты серверу или от одного email сервера другому. Общение между отправителем и получателем происходит в текстовом виде с использованием надежного канала (обычно TCP). SMTP - надежный и простой протокол.
В этой статье мы расскажем, как использовать Jelastic PHP для SMTP. Будут рассмотрены 2 варианта: используя PHPMailer или собственную форму для отправки email.
Теперь можно настраивать SMTP . Сначала рассмотрим настройки PHPMailer .
1. Скачайте скрипт PHPMailer
. (по ссылке модифицированная версия, включающая все настройки и предназначающаяся только для SMTP
).
2. Откройте «Диспетчер дистрибутивов» и загрузите скрипт в Jelastic.
В этом файле конфигурации вы можете настроить данные отправки почты:
Для использования этой конфигурации вам нужно установить следующие параметры:
Сохраните сделанные изменения. После этого вы можете нажать на кнопку «Открыть в браузере».
Вы увидите форму для отправки email.
Введите информацию в поля формы и нажмите «Submit»
. Через несколько минут письмо будет доставлено по указанному адресу почты.
Если вы через несколько минут так и не получили письмо - проверьте «Спам».
Введите тестовые данные и нажмите «Submit» . Письмо будет отправлено.
Это все, что необходимо для успешной отправки писем с PHPMailer. Используя это руководство можно попробовать настроить и другие email–системы.
Теперь давайте посмотрим, как создать собственную форму для отправки писем.
2. Перейдите в webroot/ROOТ (или в другую контекстную папку) и создайте новый файл: например mailtest.php .
3. Напишите код формы в mailtest.php, например такой:
Вы можете использовать и localhost (просто введите localhost в поле From) и настоящий адрес электронной почты для отправки.
В итоге мы получаем письмо на email.
Вот так все просто. Вы можете отправлять письма и напрямую из вашего приложения, развернутого в Jelastic.
Успешного использования
Одним из основных элементов является конфигурация SMTP-сервера. Рассмотрим, что это такое и как произвести нужные настройки для различных ситуаций.
Сокращение SMTP происходит от английского словосочетания , что в переводе означает «простой протокол отправки почты». В основном область его применения ограничивается сетями на основе TCP/IP и пользовательским уровнем.
В любой мейл-программе, часто называемой почтовым клиентом, имеются специальные настройки, позволяющие сконфигурировать параметры протокола. Именно его посредством все электронные письма отправляются на почтовый сервер, где ожидают ретрансляции. Изначально SMTP-сервер использует TCP-порт под номером 25. Однако с развитием сервисов электронной почты настройки могут существенно изменяться.
Как правило, любой почтовый сервис в интернете, предлагающий пользователям услуги по отправке и получению электронной корреспонденции, уже оснащен заранее настроенным SMTP-сервером. То есть пользователю производить ничего не нужно.
Сами же сервисы для входа в собственный почтовый ящик требуют от пользователя только ввода логина и пароля, указанных при регистрации, и настраивать, например, SMTP-сервер Mail.Ru не требуется всего лишь по той причине, что в самом сервисе все это было сделано изначально (без этого служба просто не работала бы). Но что делать, если пользователь интернет-ресурсами по какой-то причине не пользуется, а предпочитает стандартные клиенты вроде майкрософтовских Outlook Express и Outlook или сторонние программные продукты, имея при этом зарегистрированный ящик именно в интернет-сервисе?
Посмотрим на стандартные параметры, которые следует применить к данному сервису. Вне зависимости от используемого почтового клиента абсолютно все настройки будут идентичными.
Итак, для того чтобы правильно сконфигурировать SMTP-сервер Mail.Ru, следует задать следующие параметры:
После вступления в силу этих настроек почту можно будет принимать непосредственно в используемой пользовательской программе. Как видим, порт SMTP-сервера отличается от стандартного (25), но это связано уже с протоколами TCP/IP.
Не менее популярным является и сервис Yandex.Ru. SMTP-сервер для него настраивается полностью аналогичным образом.
Однако для сервера исходящих сообщений применяется адрес smtp.yandex.ru, для порта указывается значение 465, но в настройках защиты устанавливается исключительно TLS.
Теперь перейдем к более сложным ситуациям, когда пользователю по каким-либо причинам (например, для раскрутки собственного бизнеса или сайта) нужно осуществлять массовую рассылку. Заниматься этим вручную с использованием онлайн-сервисов или почтовых клиентов нет смысла хотя бы по той причине, что это занимает слишком много времени и сил. Поэтому можно поступить двояким способом - купить уже готовый настроенный SMTP-сервер или настроить его самому.
В первом случае, если приобретается «белый» сервер, это потребует весомых затрат, а также соблюдения всех условий разработчика или продавца. Можно, конечно, приобрести «серый» сервер, однако здесь нет гарантии, что он не будет внесен в спам-базы поисковых систем. Чревато это только тем, что тот же Yandex при поступлении писем с указанных источников будет просто фильтровать их и отправлять в раздел спама, а Mail.Ru и Google помечают корреспонденцию соответствующим индексом «спамности». Настройка же SMTP-сервера вручную выглядит и более надежной, и более экономной в плане финансовых затрат.
Для начала нужно приобрести сервер VPS с операционной системой Centos версии не ниже шестой. Сразу обратите внимание, есть ли возможность ввода записи PTR, которая позволит точно идентифицировать каноническое имя домена принимающим сервером.
Далее нужно установить панель Vesta. В качестве примера используем утилиту PuTTY, которую нужно скачать, установить и запустить. В настройках сразу прописываем IP-адрес сервера, далее жмем кнопку Open и прописываем логин root и пароль, предоставленный при покупке VPS-сервера.
Теперь последовательно вводим следующие команды:
curl -O http://vestacp.com/pub/vst-install.sh
bash vst-install.sh
Если возникает ошибка, решаем ее при помощи сочетания:
bash vst-install-rhel.sh —force
После этого вводим действительный адрес электронного ящика и название хоста. Через 5-10 минут панель установится.
https://IP сервера:8083
Возникает окно, где нужно ввести имя пользователя root и предоставленный пароль.
На следующем этапе регистрируем домен и переходим в панель параметров DNS, где меняем местами и A.
Ждем, пока произойдет обновление DNS-зон, и переходим на вкладку WEB в панели Vesta, где добавляем зарегистрированный домен.
После этого регистрируем аккаунты SMTP в разделе Mail. Для проверки в том же разделе используем вкладку Open Webmail. В появившемся окне EXIM-сервера вводим параметры созданного SMTP и отправляем пробное письмо. Если все нормально, можно себя поздравить.
Обратите внимание, что в некоторых случаях для массовой рассылки может потребоваться наличие цифровой подписи (не путать с записью PTR, которая отвечает только за подлинность домена или хоста). При ее отсутствии некоторые принимающие службы могут отнестись к рассылке недоверительно, а сама входящая корреспонденция будет помечена как сомнительная. Так что об этом нужно позаботиться заранее.
Остается добавить, что настройка SMTP-сервера для почтовых клиентов не так уж сложна, как это могло показаться вначале. Но вот для массовых рассылок над настройкой придется, что называется, попотеть. И использовать можно не только тот вариант, который был представлен выше. Некоторые разработчики уже сегодня предлагают автоматизированные системы создания и настройки таких серверов за весьма умеренную плату (а то и вообще бесплатно).
Не все знают, что они могут использовать бесплатный SMTP сервер от Google для отправки электронной почты. Это может стать хорошим решением для тех, кто не может использовать SMTP сервер предоставленный провайдером или хостингом, а также тем, кто испытывает проблемы с доставкой электронной почты. В этом руководстве вы узнаете, как использовать бесплатный SMTP сервер от Google. Вы также найдёте подробную информацию по его использованию для отправки электронных сообщений через почтовую программу PHP.
Несмотря на то, что большинство хостингов и интернет-провайдеров (например, ) предоставляет свою поддержку SMTP, существует несколько выгодных моментов в использовании внешнего SMTP сервера:
Google ограничивает количество исходящих электронных сообщений до 100 штук в день. При достижении лимита, вы не сможете отправлять письма в течение следующих 24 часов. Более подробная информация по поводу ограничений на отправку электронной почты может быть найдена .
Прежде всего, для того, чтобы использовать бесплатный SMTP сервер от Google, вам необходимо разрешить доступ к непроверенным приложениям. Google начал блокировать такого рода приложения и устройства, которые согласно его мнению не соответствуют современным стандартам безопасности. Однако доступ к таким приложениям может быть легко включен .
ВАЖНО! Если вы используете двухэтапную аутентификацию для доступа к вашему Google аккаунту, доступ к непроверенным приложениям не может быть включен. В таком случае вам надо войти в систему, используя пароль приложения .
Детали SMTP сервера Google вы можете найти ниже:
Если вы хотите хранить все ваши исходящие сообщения в папке Отправленные вашего gmail, используйте IMAP протокол, следуя этим шагам:
На этом этапе вы научитесь, как использовать бесплатный SMTP сервер от Google для отправки сообщений через PHPMailer и плагин WordPress. Знание того, как отправлять электронные письма с помощью PHP полезно, если вы учитесь программированию или хотите создать простую контактную форму для вашего сайта.
Доступно множество PHP скриптов позволяющих это сделать. В примере внизу мы будем использовать PHPMailer :
PHPMailer уже имеет пример настроек для использования с SMTP сервером Google под названием gmail.phps . Он находится в папке PHPMailer-master/examples .
isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 2; //Ask for HTML-friendly debug output $mail->Debugoutput = "html"; //Set the hostname of the mail server $mail->Host = "smtp.gmail.com"; // use // $mail->Host = gethostbyname("smtp.gmail.com"); // if your network does not support SMTP over IPv6 //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission $mail->Port = 587; //Set the encryption system to use - ssl (deprecated) or tls $mail->SMTPSecure = "tls"; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication - use full email address for gmail $mail->Username = "[email protected]"; //Password to use for SMTP authentication $mail->Password = "yourpassword"; //Set who the message is to be sent from $mail->setFrom("[email protected]", "First Last"); //Set an alternative reply-to address $mail->addReplyTo("[email protected]", "First Last"); //Set who the message is to be sent to $mail->addAddress("[email protected]", "John Doe"); //Set the subject line $mail->Subject = "PHPMailer GMail SMTP test"; //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body $mail->msgHTML(file_get_contents("contents.html"), dirname(__FILE__)); //Replace the plain text body with one created manually $mail->AltBody = "This is a plain-text message body"; //Attach an image file $mail->addAttachment("images/phpmailer_mini.png"); //send the message, check for errors if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; } Contact GitHub API Training Shop Blog About
Для того, чтобы этот скрипт работал с Google SMTP сервером, вам необходимо отредактировать некоторые настройки, такие как username (имя пользователя) , password (пароль) и email recipient address (адрес получателя электронной почты) . Также вы можете изменить название файла с gmail.phps на gmail.php , таким образом вы сможете получить доступ к файлу через ваш браузер. Для переименования и редактирования файлов можно использовать Файловый менеджер или FTP-клиент.
Как только редактирование закончено, просто откройте скрипт своим браузером. Если вы загрузили папку PHPMailer-master в папку public_html , то файл будет доступен по адресу http://вашдомен.ru/PHPMailer-master/examples . Если все настроено верно, вы должны увидеть сообщение об успешной отправке электронного сообщения.
Самый простой вариант использования внешнего SMTP на WordPress это использование плагина WP Mail SMTP .
Прежде войдите свою админ консоль и перейдите в раздел Плагины → Добавить новый . Установите и активируйте плагин Mail SMTP.
Теперь зайдите на страницу настроек WP Mail SMTP по пути Плагины→ Установленные и нажмите Настройки (Settings) .
Вам нужно будет заполнить все необходимые детали вашего SMTP сервера.
Для сохранения внесённых вами изменений нажмите на кнопку Save Changes (Сохранить изменения) внизу страницы. Чтобы убедиться в том, что ваши настройки работают, вы можете отправить тестовый email на свой личный аккаунт. Введите электронный адрес и нажмите Send Test (Отправить тест) .
Если вы получили отправленный вами email – это значит, что отправка почты работает верно. Однако, если вы получили какую-либо ошибку, перепроверьте настройки электронной почты или свяжитесь со службой поддержки вашего хостинга для помощи.
По окончанию этого руководства вы узнали, как настроить свою учётную запись Google и использовать бесплатный SMTP сервер от Google. Также вы научились отправлять сообщения с помощью PHPMailer. Если вы являетесь пользователем WordPress, загляните в о настройке внешней службы SMTP на WordPress.