add php mail
This commit is contained in:
parent
cadf9f6353
commit
f7ea46f56b
@ -9,6 +9,7 @@
|
|||||||
- [`json_decode`](json_decode.php) - Декодирует строку JSON
|
- [`json_decode`](json_decode.php) - Декодирует строку JSON
|
||||||
- [`json_encode`](json_encode.php) - Возвращает JSON-представление данных
|
- [`json_encode`](json_encode.php) - Возвращает JSON-представление данных
|
||||||
- [`SQLite3`](sqlite3.php) - Простой использования класса SQLite3
|
- [`SQLite3`](sqlite3.php) - Простой использования класса SQLite3
|
||||||
|
- [`mail`](mail.php) - Отправляет электронную почту
|
||||||
|
|
||||||
## Libs
|
## Libs
|
||||||
- [`Fenom`](Fenom.md) - fenom
|
- [`Fenom`](Fenom.md) - fenom
|
||||||
|
111
~/PHP/mail.php
Normal file
111
~/PHP/mail.php
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
mail(
|
||||||
|
string $to,
|
||||||
|
string $subject,
|
||||||
|
string $message,
|
||||||
|
array|string $additional_headers = [],
|
||||||
|
string $additional_params = ""
|
||||||
|
): bool
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
to
|
||||||
|
Получатель, или получатели письма.
|
||||||
|
Формат этого параметра должен соответствовать RFC 2822. Несколько примеров:
|
||||||
|
user@example.com
|
||||||
|
user@example.com, anotheruser@example.com
|
||||||
|
User <user@example.com>
|
||||||
|
User <user@example.com>, Another User <anotheruser@example.com>
|
||||||
|
|
||||||
|
subject
|
||||||
|
Тема отправляемого письма.
|
||||||
|
Предостережение
|
||||||
|
Тема должна соответствовать RFC 2047.
|
||||||
|
|
||||||
|
message
|
||||||
|
Отправляемое сообщение.
|
||||||
|
Каждая строка должна быть отделена символом CRLF (\r\n).
|
||||||
|
Строки не должны быть длиннее 70 символов.
|
||||||
|
additional_headers (необязательный)
|
||||||
|
Строка или массив, которые будут вставлены в конец отправляемых заголовков письма.
|
||||||
|
Обычно используется для добавления дополнительных заголовков (From, Cc, and Bcc).
|
||||||
|
Несколько дополнительных заголовков должны быть разделены CRLF (\r\n).
|
||||||
|
Если для составления этого заголовка используются внешние данные,
|
||||||
|
то они должны быть проверены для избежания инъекций нежелательных заголовков.
|
||||||
|
Если передан массив, то его ключи будут именами заголовка, а значения значениями.
|
||||||
|
additional_params (необязательный)
|
||||||
|
Параметр additional_params может быть использован для передачи дополнительных флагов
|
||||||
|
в виде аргументов командной строки для программы сконфигурированной для отправки писем,
|
||||||
|
указанной директивой sendmail_path. Например, можно установить отправителя письма
|
||||||
|
при использовании sendmail с помощью опции -f.
|
||||||
|
Параметр автоматически экранируется функцией escapeshellcmd(),
|
||||||
|
чтобы не допустить выполнение команд. Но escapeshellcmd()
|
||||||
|
позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять
|
||||||
|
и очищать этот параметр.
|
||||||
|
Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы,
|
||||||
|
допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы,
|
||||||
|
поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы
|
||||||
|
для их отправки (например фреймворки или библиотеки).
|
||||||
|
Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных
|
||||||
|
в конфигурации sendmail для того чтобы избежать добавления заголовка 'X-Warning'
|
||||||
|
при указании отправителя с помощью опции (-f). Для пользователей sendmail
|
||||||
|
- это файл /etc/mail/trusted-users.
|
||||||
|
|
||||||
|
Возвращает true, если письмо было принято для передачи, иначе false.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$to = 'nobody@example.com';
|
||||||
|
$subject = 'the subject';
|
||||||
|
$message = 'hello';
|
||||||
|
$headers = 'From: webmaster@example.com' . "\r\n" .
|
||||||
|
'Reply-To: webmaster@example.com' . "\r\n" .
|
||||||
|
'X-Mailer: PHP/' . phpversion();
|
||||||
|
|
||||||
|
mail($to, $subject, $message, $headers);
|
||||||
|
|
||||||
|
|
||||||
|
/* Пример: Отправка HTML-сообщения */
|
||||||
|
|
||||||
|
// несколько получателей
|
||||||
|
$to = 'johny@example.com, sally@example.com'; // обратите внимание на запятую
|
||||||
|
|
||||||
|
// тема письма
|
||||||
|
$subject = 'Birthday Reminders for August';
|
||||||
|
|
||||||
|
// текст письма
|
||||||
|
$message = '
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Birthday Reminders for August</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Here are the birthdays upcoming in August!</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Johny</td><td>10th</td><td>August</td><td>1970</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
';
|
||||||
|
|
||||||
|
// Для отправки HTML-письма должен быть установлен заголовок Content-type
|
||||||
|
$headers = 'MIME-Version: 1.0' . "\r\n";
|
||||||
|
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
|
||||||
|
|
||||||
|
// Дополнительные заголовки
|
||||||
|
$headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>';
|
||||||
|
$headers[] = 'From: Birthday Reminder <birthday@example.com>';
|
||||||
|
$headers[] = 'Cc: birthdayarchive@example.com';
|
||||||
|
$headers[] = 'Bcc: birthdaycheck@example.com';
|
||||||
|
|
||||||
|
// Отправляем
|
||||||
|
mail($to, $subject, $message, implode("\r\n", $headers));
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user