Для отправки email в PHP используется фунция mail()
. Чтобы отправить письмо нужно указать адрес получателя, тему письма и текст сообщения, а также специальный заголовок From, с указанием отправителя:
<?php
mail('receiver@example.com', 'Тема письма', 'Текст письма', 'From: sender@example.com');
?>
Если этот код выполнить на хостинге, то письмо будет отправлено и придёт получателю, но если мы используем OSPanel, то по умолчанию все наши письма будут просто записываться в лог-файл( расположен в папке .\OSPanel\logs\mail
).
[!info] Дополнительную информацию по данному вопросу можно найти в документации PHP.
Настройка отправки email в OSPanel 6.0 через удалённый SMTP
Установите windows-приложение sendmail.exe
SendMail — программа, которая может отправлять электронные письма по протоколу SMTP.
В предыдущих версиях OSPanel программа sendmail.exe была включеня, но в версии 6.0 ее нет, поэтому:
скачайте sendmail.zip и распакуйте его содержимое (например в папку .\OSPanel\sendmail
)
Настройте SendMail
В файле конфигурации С:\sendmail\sendmail.ini
укажите свои значения:
smtp_server=
smtp_port=
auth_username=
auth_password=
[!note] Параметры следует указывать без ковычек.
Пример настройки SendMail для популярного хостинга Timeweb
Отправку писем из скриптов на сайтах можно осуществлять через SMTP-сервер или через Exim (агент пересылки сообщений), установленный на каждом сервере виртуального хостинга Timeweb.
Для отправки по SMTP используются следующие реквизиты:
- сервер для отправки электронной почты — smtp.timeweb.ru,
- порт — 25 или 2525,
- логин пользователя совпадает с электронным ящиком,
- пароль от электронного ящика.
Настройка сервера OSPanel
Настройки Open Server Panel и ее модулей хранятся в файле .\OSPanel\config\program.ini
. Отключите встроенный SMTP сервер в секции [smtp]:
...
[smtp]
;open_email_after_saving = off
;saved_email_extension = .eml
;smtp_port = 25
smtp_server = off
...
Далее необходимо отредактировать файл настроек модуля PHP с версией активированной для нашего пректа (например PHP-8.3) .\OSPanel\config\PHP-8.3\default\templates\php.ini
:
...
;--------------------------------
; Mail
;--------------------------------
mail.add_x_header = Off
;mail.force_extra_parameters =
;mail.log = "{root_dir}/logs/{module_name}/php_mail.log"
;mail.mixed_lf_and_crlf = Off
;sendmail_from =
;sendmail_path =
;SMTP = "{api_domain}"
;smtp_port = {smtp_port}
sendmail_path = "{root_dir}/sendmail/sendmail.exe -t"
...
или вместо добавленной строки в файле .\OSPanel\config\PHP-8.3\default\templates\php.ini
:
sendmail_path = "{root_dir}/sendmail/sendmail.exe -t"
добавить строку
php_admin_value sendmail_path = "{root_dir}/sendmail/sendmail.exe -t"
в конце файла .\OSPanel\config\PHP-8.3\default\templates\httpd.conf
:
...
</VirtualHost>
</IfModule>
</Macro>
php_admin_value sendmail_path = "{root_dir}/sendmail/sendmail.exe -t"
# -----------------------------------------------------------------------------------
# Virtual Hosts
# -----------------------------------------------------------------------------------
...
[!warning] Важно: Для применения изменений необходимо перезапустить Open Server Panel.
В результате, отправка почты должна работать.