Работа с PHP mail

Функция PHP mail предназначена для отправки электронной почты, и ее работа осуществляется на нашем хостинге через агент пересылки почтовых сообщений Exim, который установлен на каждом сервере виртуального хостинга.

Отправка сообщений

Чтобы отправить тестовое сообщение, необходимо создать php-скрипт, например, со следующим содержанием:

<?php
$message = "Line 1\nLine 2\nLine 3";
$message = wordwrap($message, 70);
var_dump(mail('mail@testdomain.ru', 'My Subject', $message));
?>

В данном примере переменная $message содержит текст письма, а вместо mail@testdomain.ru необходимо указать корректный адрес получателя письма.

Письма отправляются от user@server.timeweb.ru, где user — это ваш логин, а server — имя сервера, на котором расположен аккаунт. Доступ к данному электронному ящику невозможен. Также невозможна DKIM-подпись (цифровая подпись, подтверждающая что письмо отправлено именно с этого адреса) для данного вида писем.

Для того, чтобы в качестве адреса отправителя указывался определенный ящик, необходимо помимо заголовка From передавать почтовому серверу в функции mail аргумент -f:

mail("получатель", "тема", "текст", "заголовки", "-f адрес отправителя")

Дополнительную информацию по данному вопросу можно найти в документации PHP.

Недоступность PHP mail

Доступ к работе с PHP mail может быть заблокирован:

  • на тестовом аккаунте;
  • из-за открытого инцидента по вредоносному коду, фишингу и др.

Проверить, доступны ли почтовые функции для аккаунта, можно при подключении по SSH. Для этого введите команду:

user@server:~$ id
uid=4122(user) gid=600(customers) groups=600(customers)

Такой вывод команды id говорит о том, что почтовые функции доступны. 

Подробная информация о данной функции доступна в официальной документации PHP.