Как сделать отправку почты php

В этой статье мы рассмотрим простой способ отправки почты с помощью PHP с примерами исходного кода. Объясним как настроить сервер и как отправлять письма из вашего сайта.

Отправка почты с помощью PHP

Отправка почты с помощью PHP может быть очень простой и легкой задачей. Все, что вам нужно, - это правильно настроить некоторые параметры и применить функцию mail(). Функция mail() предоставляет основу для отправки электронной почты с использованием PHP. Она принимает три параметра: адрес получателя, тему сообщения, и само сообщение.

Давайте рассмотрим простой пример использования функции mail():


$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "rn" .
    'Reply-To: webmaster@example.com' . "rn" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

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

Теперь давайте рассмотрим несколько примеров использования некоторых из доступных заголовков:


$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "rn" .
    'Reply-To: webmaster@example.com' . "rn" .
    'X-Mailer: PHP/' . phpversion() . "rn" .
    'MIME-Version: 1.0' . "rn" .
    'Content-type: text/html; charset=iso-8859-1';

mail($to, $subject, $message, $headers);

В данном примере мы указали версию MIME и тип содержимого (в данном случае - HTML с кодировкой ISO-8859-1).

Чтобы отправить почту с прикрепленными файлами, вам нужно использовать функцию mail() с некоторыми дополнительными заголовками. Вот пример для отправки письма с двумя прикрепленными файлами:


$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';

$file1 = '/home/user/file1.pdf';
$file2 = '/home/user/file2.pdf';

$file1name = 'file1.pdf';
$file2name = 'file2.pdf';

$file1type = 'application/pdf';
$file2type = 'application/pdf';

$separator = md5(time());

$headers = 'From: webmaster@example.com' . "rn" .
    'MIME-Version: 1.0' . "rn" .
    'Content-Type: multipart/mixed; boundary=' . $separator . "rn" .
    'Content-Transfer-Encoding: 7bit' . "rn" .
    'X-Mailer: PHP/' . phpversion();

$body = 'This is a multi-part message in MIME format.' . "rn" .
    '--' . $separator . "rn" .
    'Content-Type: text/plain; charset=iso-8859-1' . "rn" .
    'Content-Transfer-Encoding: 7bit' . "rn" .
    "rn" .
    $message . "rn" .
    "rn" .
    '--' . $separator . "rn" .
    'Content-Type: ' . $file1type . '; name="' . $file1name . '"' . "rn" .
    'Content-Transfer-Encoding: base64' . "rn" .
    'Content-Disposition: attachment; filename="' . $file1name . '"' . "rn" .
    "rn" .
    chunk_split(base64_encode(file_get_contents($file1))) . "rn" .
    "rn" .
    '--' . $separator . "rn" .
    'Content-Type: ' . $file2type . '; name="' . $file2name . '"' . "rn" .
    'Content-Transfer-Encoding: base64' . "rn" .
    'Content-Disposition: attachment; filename="' . $file2name . '"' . "rn" .
    "rn" .
    chunk_split(base64_encode(file_get_contents($file2))) . "rn" .
    "rn" .
    '--' . $separator . '--';

mail($to, $subject, $body, $headers);

В данном примере мы используем функцию chunk_split(), чтобы преобразовать содержимое файлов в байты и используем base64_encode() для кодирования содержимого файлов в формат MIME. Также мы используем разделитель, указанный в заголовках, для разделения сообщения и прикрепленных файлов.

Это все, что нужно знать об отправке почты с помощью PHP. Правильное использование функции mail() и правильно настроенные заголовки могут помочь вам отправлять письма правильно и без проблем.

Ответы (0)