Отправка почты через smtp с авторизацией. Отправка писем (SMTP vs. mail PHP). Проверяем отправку email

Чтобы определенный сайт имел возможность качественно и продуктивно работать, к его созданию стоит подойти максимально ответственно и взвешенно. Особого внимания заслуживает выбор системы, которая будет использоваться при создании интернет-магазина. Дело в том, что коммерческая платформа, специализирующаяся на продажах товаров или услуг, должна позволять реализовать весь необходимый функционал и быть удобной в использовании, как для администраторов, занимающихся обслуживанием и наполнением сайтов, так и для клиентов интернет-магазинов. Многие люди и компании, которые встают перед вопросом подбора подходящей для себя CMS, анализируют: что выбрать Magento или OkayCMS. Давайте сравним особенности и возможности данных движков для сайтов.

При работе над собственным сайтом, человеку или компании предстоит приложить большие усилия - только в таком случае можно рассчитывать на положительные результаты и получение действительно эффективного инструмента. Одним из основополагающих вопросов, который предстоит решить еще до того, как начинать создание сайта, будет тот, как определиться с наиболее подходящим вариантом CMS. Далее мы сравним две CMS: Joomla или OkayCMS, обратим внимание на особенности каждой из них.

Наличие собственного сайта - одно из основополагающих требований для эффективного, успешно работающего бизнеса. Статистика однозначно свидетельствует в пользу возрастания числа покупок различных товаров и заказов услуг через интернет. Принимая это во внимание, большинство коммерческих компаний уже осознают необходимость наличия собственного сайта. Впрочем, одного только факта наличия интернет ресурса еще недостаточно, чтобы рассчитывать на его эффективность, рентабельность и ожидаемую для бизнеса пользу.

При подготовке к созданию собственного сайта или открытию интернет-магазина, необходимо принять во внимание и проанализировать немало вопросов, а также решить различные задачи. Только в таком случае можно рассчитывать на то, что ваш проект принесет положительные результаты и сможет в полной мере оправдать возлагаемые ожидания. Среди различных вопросов, связанных с разработкой интернет-магазина, особого внимания заслуживает вопрос выбора CMS. Чтобы вам было проще определиться с оптимальным для себя движком, в рамках

Планируя создание собственного сайта для будущего интернет-магазина, достаточно большое число человек и даже специализирующихся на продажах компаний становятся перед непростым и чрезвычайно важным выбором: на какой из существующих CMS остановиться. Если вы размышляете о том, что выбрать: PrestaShop или OkayCMS, предлагаем ознакомиться с данной статьей, в которой мы сравним две эти системы для создания интернет-сайтов, в частности, интернет-магазинов.

Настройки отправки почты через SMTP

Встречаются случаи, когда сайтостроители сталкиваются с проблемой работы электронной почты сайта на CMS Joomla. Например, при отправки письма через форму обратной связи могут появляться ошибки следующего типа: "Could not instantiate mail function" или "Не удалось вызвать функцию mail" . Также возможен вариант отправления письма без появления ошибок, однако в результате оно все равно не доходит до адресата.

Почему же происходят данные проблемы с почтой? Чтобы ответить на данный вопрос необходимо в панели управления пройти по следующему пути: "Система" - "Общие настройки" - вкладка "Сервер" - раздел "Настройка почты".

В CMS Joomla предусмотрено три механизма отправки писем: PHP Mail, Sendmail и SMTP. По умолчанию используется PHP Mail с которым зачастую и происходят проблемы, которые, в основном, связаны с настройками используемого хостинга.

Исходя из вышеизложенного делаем вывод: либо обращаемся за помощью к хостинг провайдеру, либо используем способ отправки писем Sendmail или SMTP. Остановимся на использовании SMTP.

Настройки отправки почты при помощи SMTP

SMTP (англ. Simple Mail Transfer Protocol) - сетевой протокол, используемый для передачи электронной почты. Для использования SMTP необходимо корректно выставить настройки определенного почтового сервера, который будет использоваться.

Чтобы увидеть настройки SMTP, необходимо в "Способе отправки" выбрать "SMTP". Рассмотрим каждую настройку популярных почтовых серверов: Yandex, Mail, Gmail, Rambler и Yahoo.

Настройки SMTP для Yandex

  1. E-mail сайта: почтовый ящик на yandex.ru, например: [email protected]
  2. Защита SMTP: SSL
  3. Порт SMTP-сервера: 465
  4. Имя пользователя SMTP: логин ящика на yandex.ru, например: khasanov (без @yandex.ru)
  5. SMTP-сервер: smtp.yandex.ru

Настройки SMTP для Mail

  1. E-mail сайта: почтовый ящик на mail.ru, например: [email protected]
  2. Отправитель письма: запись, которая будет отображаться у адресата в поле "Отправитель"
  3. Отключить рассылку: вкл/откл. функции массовой рассылки писем
  4. Авторизация на SMTP-сервере: Да
  5. Защита SMTP: SSL
  6. Порт SMTP-сервера: 465
  7. Имя пользователя SMTP: почтовый ящик на mail.ru, например: [email protected]
  8. Пароль для SMTP: пароль от почтового ящика
  9. SMTP-сервер: smtp.mail.ru

Настройки SMTP для Gmail

  1. E-mail сайта: почтовый ящик на gmail.com, например: [email protected]
  2. Отправитель письма: запись, которая будет отображаться у адресата в поле "Отправитель"
  3. Отключить рассылку: вкл/откл. функции массовой рассылки писем
  4. Авторизация на SMTP-сервере: Да
  5. Защита SMTP: SSL
  6. Порт SMTP-сервера: 465
  7. Имя пользователя SMTP: почтовый ящик на gmail.com, например: [email protected]
  8. Пароль для SMTP: пароль от почтового ящика
  9. SMTP-сервер: smtp.gmail.com

Настройки SMTP для Rambler

  1. E-mail сайта: почтовый ящик на rambler.ru, например: [email protected]
  2. Отправитель письма: запись, которая будет отображаться у адресата в поле "Отправитель"

Отправка почты через SMTP с локального сервера позволяет протестировать отправку сообщений с сайта находящемся на локальной машине, или проще говоря, локальном сервере. Для этого можно использовать любой почтовый сервис yandex, google или mail.ru.

Прежде всего, SMTP (Simple Mail Transfer Protocol) - это широко используемый сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP. И такими протоколами обладают все популярные почтовые сервисы.

С появлением локальных серверов, отпала необходимость выбора хостинг-провайдера для того чтобы проверить работоспособность отдельных скриптов или cms-систем, а тем более еще и платить за это. Гораздо проще все протестировать на компьютере, ну а затем можно и показать всем что «натворили».

Многие такие сервера имеют уже встроенное программное обеспечение и необходимый функционал по работе с почтой, нужно его только правильно настроить.

Для проверки работоспособности такой почты необходим самый минимум:

  • В качестве локального сервера можно использовать Openserver.
  • И простенький скрипт, шаблон которого можно взять чуть ниже.
  • Почтовый сервер можно использовать любой.

Отправка почты php через SMTP-настройка скрипта

Шаблон простенького скрипта который можно скопировать чуть ниже, или скачать еще на сотнях подобных сайтов, необходимо отредактировать.

Для начала нужно поменять в шаблоне скрипта некоторые значения.
to — меняем на почтовый адрес куда будет отправлено почтовое сообщение.
subject — тема письма
message — само сообщение, или тело письма.

Пример моего скрипта:

Можно конечно немного расширить функционал и сделать так, чтобы скрипт выдавал сообщение об отправки почты. Хоть на самом деле отправку производит именно SMTP-сервер, а скрипт лишь формирует сообщение.

Для примера можно написать так:

Все подставленные значения должны быть в кавычках, иначе скрипт выдаст ошибку. После этого можно сохранить скрипт в папку локального сервера.

Например: domains/send/index.php и приступать к настройке отправки почты через SMTP opensrerver.

Почта будет приходить на любой адрес, который будет указан в скрипте вместо значения ‘to’ , но обрабатывать и отправлять эту почту будет именно тот SMTP, который будет указан в настройках openserver.

  1. Запускаем сервер
  2. Открываем модуль openserver с настройками в меню «почта»
  3. Заполняем все поля как показано на картинке, при этом, имя пользователя, e-mail отправителя и пароль подставляем от реального почтового ящика на яндексе.

Сохраняем настройки и после того, как сервер будет перезапущен, можно обратиться к самому скрипту. Из папки «Мои сайты», открыть папку «send» в которой и находится сохраненный ранее скрипт index.php.

Как только произойдет обращение к данному скрипту, в новом окне браузера появится информация о том, что скрипт отработал.

После этого стоит проверить свой почтовый ящик, адрес которого был указан в скрипте, пришло ли письмо.

Если его нет, значит что-то настроено не правильно, либо письмо попало в папку спам.

Все остальные настройки выглядят аналогично, но на всякий случай дополнительная информация не помешает.

Для того, чтобы настроить отправку почты через SMTP mail ru, необходимо просто заменить параметры яндекса на параметры mail ru.

А чтобы не перестраивать каждый раз локальные сервер, лучше всего настроить разные профили openserver. Как это сделать показано в видеоуроке .

В этом случае достаточно будет просто загрузить профиль и все настройки, которые были указаны для данного профиля будут доступны после перезапуска сервера. Очень удобная штука и работает очень просто.

Для каждого профиля (совсем не важно как он будет называться), должны быть сделаны свои настройки, если конечно планируется использование разных по своим параметрам скриптов, cms-систем и приложений.
Если нет, то можно обойтись и настройками по умолчанию.

Что касается SMTP mail ru, то здесь все эдентично.

Меняются данные яндекса на данные mail ru

Oтправка почты через smtp google

Для того, чтобы настроить отправку почты через SMTP гугла, стоит чуть постараться.

Во-первых, создание самого профиля в гугле сложнее чем в других системах яндекса и mail ru
Во-вторых, система просто так не пропустит письмо, даже если указать свои данные для входа. Для начала она пришлет письмо в котором и будет вся необходимая информация о дальнейших инструкциях.

В остальном же для гугла настраивается точно так же. Меняются только все данные .

Для настройки отправки почты через другие SMTP, все данные будут примерно одинаковы.

Если у вас все получилось и письма дошли до указанного адресата, значит все сделано правильно. Будет здорово если вы поделитесь своими наработками в комментариях.

В некоторых случаях с целью тестирования или диагностики работы почты, почтовому администратору требуется проверить отправку писем через свои сервера Exchange (и не только) с определенных хостов. В том случае, если сервер не требует авторизации (open-relay сервер), отправить почту можно . Однако в большинстве случае почтовые сервера для отправки почты требуют авторизации. В этом примере мы покажем, как в консоли telnet выполнить аутентификацию типа AUTH LOGIN на SMTP сервере и отправить письмо.

AUTH LOGIN – в терминологии Exchange – это базовая аутентификация, когда имя и пароль пользователя передаются по сети в закодированном по алгоритму base64 виде. На большинстве внутренних серверах Exchange администраторы не отключают Basic Authentication . Проверить ее поддержку можно в настройках принимающего коннектора.

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

Для авторизации на почтовом сервер с с помощью AUTH LOGIN, нам нужно преобразовать имя и пароль пользователя, из-под которого будет отправляться письмо в формат Base64. Это можно сделать с помощью скриптов или онлайн сервисов. Я воспользоваться сайтом https://www.base64encode.org/ .

Имя пользователя: testuser@ contoso. com , в кодировке Base64 получилось: dGVzdHVzZXJAY29udG9zby5jb20=

Пароль: $ up3 RsTr) ng — в Base64 JHVwM1 JzVHIpbmc=

Теперь в командой строке с помощью Telnet подключаемся на 25(SMTP) порт нашего почтового сервера (вводимые команды я буду выделять синим цветов):

telnet mail.contoso.com 25

Если это Exchange, он вернет что-то вроде;

Представимся:

ehlo sender.contoso.com

Сервер вернет список поддерживаемых типов авторизаций и возможностей. Как вы видите базовая авторизация (AUTH LOGIN) в списке имеется.

250-mail.contoso.com Hello
250-SIZE 36700160
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH LOGIN
250-8BITMIME
250-BINARYMIME
250 CHUNKING

AUTH LOGIN

Сервер должен ответить:
334 VXNlcm5hbWU6

Теперь вставляем имя пользователя в формате Base64, которое мы закодировали ранее:
dGVzdHVzZXJAY29udG9zby5jb20=

Сервер должен ответить:

334 UGFzc3dvcmQ6.

Теперь пора вставить пароль в формате Base64:
JHVwM1JzVHIpbmc=

Если имя и пароль пользователя верны, сервер ответит.
235 2.7.0 Authentication successful

Если нет:

535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6

Теперь можно заполнить стандартные поля письма:

mail from: [email protected]
250 2.1.0 Sender OK
rcpt to: [email protected]
250 2.1.5 Recipient OK
data
354 Start mail input; end with .
from: TestUserovich
to: TheAdmin < [email protected] >
Subject: Test BASE SMTP Authenticated via Telnet
This is test
.
250 2.6.0 Queued mail for delivery

QUIT

221 2.0.0 Closing connection.
Connection closed by foreign host.

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

В PHP достаточно популярно использовать скрипты которые автоматизируют процесс отправки писем. В данной статье мы рассмотрим простой скрипт который выполняем отправку писем на почту получателей по средствам SMTP(Simple Mail Transfer Protocol ). Было бы слишком просто ограничится только этим функционалом, скрипт поддерживает и вложения то есть, вы сможете прикрепить pdf, txt или doc файл в своем письме.

Настройка скрипта довольно проста, от вас требуется только данные отправителя логин, пароль от электронной почты с которого будут отправляться письма.

Скрипт работает с классом km_smtp_class.php, класс хорош тем, что поддерживает разные протоколы SSL и TLS которые предоставляют защищенную передачу данных.

Вот и сам скрипт:

"smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => "[email protected]", "SMTP_pass" => "1111111", "SMTP_type" => "null"); // Email получателя $Receiver = "[email protected]"; // Тема сообщения $Subject = "Отправляем письмо из PHP"; // Текст сообщения (в HTML) $Text = "Привет!
Сообщение отправлено из скрипта Mowshon Сайт: http://сайт"; // Вложение в письме - адрес к файлу $Attachment = ""; /* $mail = new KM_Mailer(сервер, порт, пользователь, пароль, тип); */ /* Тип может быть: null, tls или ssl */ $mail = new KM_Mailer($SenderConfig["SMTP_server"], $SenderConfig["SMTP_port"], $SenderConfig["SMTP_email"], $SenderConfig["SMTP_pass"], $SenderConfig["SMTP_type"]); if($mail->isLogin) { // Прикрепить файл if($Attachment) {$mail->addAttachment($Attachment);} // Добавить ещё получателей $mail->addRecipient("[email protected]"); $mail->addRecipient("[email protected]"); /* $mail->send(От, Для, Тема, Текст, Заголовок = опционально) */ $SendMail = $mail->send($SenderConfig["SMTP_email"], $Receiver, $Subject, $Text); // Очищаем список получателей $mail->clearRecipients(); $mail->clearCC(); $mail->clearBCC(); $mail->clearAttachments(); } else { echo "Возникла ошибка во время подключения к SMTP-серверу"; } ?>

Настройка скрипта лежим в основном на массиве $SenderConfig , тут мы должны указать SMTP:сервер, порт, логин и пароль от электронной почты. Опишем каждый ключ массива:

SMTP_server - адрес SMTP сервера (индивидуальный адрес для разных почт)

Почта Mail.ru : smtp.mail.ru порт: 25, 587 и 465 (с шифрованием SSL)

Почта Yandex : smtp.yandex.ru порт: 25, 587 465 (SSL порт)

Почта Rambler : mail.rambler.ru порт: 25, 587 465 (SSL порт)

Почта Yahoo : smtp.mail.yahoo.com SSL-порт: 465

(Если понадобится адрес smtp серверов которые нет в списке - пишите в комментариях)

SMTP_port - Мы его сверху уже описали для каждого smtp сервера.

SMTP_email - точнее было бы user но для ясности написал email, указываем адрес электронной почты.

SMTP_pass - Пароль от электронной почты которая была указана как значение в ключе SMTP_email


SMTP_type - По умолчанию NULL. Протокол по которому будут отправлены письма. Протоколы: SSL и TLS

Вложения в письмо можно добавить просо указывая полный адрес к файлу в переменную $Attachment (/var/patch/to/file/File.pdf)

Если будут вопросы пишите их в комментариях ниже.




Top