ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Использование функции mail() в PHP в Ubuntu

Преимущество готовой базы email ИП и юридических лиц

Функция mail() – это встроенная функция PHP, которая используется для отправки электронной почты с локального хоста. Но для отправки электронной почты с помощью этой функции требуются некоторые настройки. Для настройки конфигурации вам потребуется реальная информация о почтовом сервере. Вы можете использовать информацию о почтовом сервере вашего активного хостингового сервера или любую информацию о бесплатном почтовом сервере. Учетная запись Gmail и информация о SMTP-сервере Gmail используются в этой статье для отправки электронной почты с помощью функции mail().

 

Настройка конфигурации

Для настройки конфигурации потребуется изменить два файла: файл php.ini и еще один файл, который необходимо настроить для настройки почтового сервера. Следуйте инструкциям ниже, чтобы настроить конфигурацию. На PHP доступно множество пакетов для отправки электронной почты. msmtp – это клиент почтового сервера PHP, который используется в этом руководстве для отправки электронной почты с помощью функции PHP mail().

Шаги :

Выполните следующую команду, чтобы установить пакет msmtp в Ubuntu для настройки почтового сервера:

$ sudo apt-get install msmtp

 

Создайте файл конфигурации с именем /etc/msmtprc с помощью следующей команды:

$ sudo nano /etc/msmtprc

 

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

defaults

tls on

tls_starttls on

tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default

host smtp.gmail.com

port 587

auth on

user username@gmail.com

password user_password

from sender_email_address

Выполните следующие команды, чтобы установить владельца и разрешения для файла / etc / msmtprc :

$ sudo chown fahmida /etc/msmtprc

$ sudo chmod 0600 /etc/msmtprc

Откройте файл php.ini и измените следующий контент со следующими значениями:

SMTP=smtp.gmail.com

smtp_port=587

sendmail_path = "/usr/bin/msmtp -t -i"

Синтаксис :

bool mail (string $to, string $subject, string $message [, mixed $additional_headers [, string $additional_parameters ]])

Эта функция может принимать четыре аргумента. Первый аргумент принимает адрес электронной почты получателя. Второй аргумент берет тему электронного письма. Третий аргумент принимает тело письма. Последний аргумент является необязательным и содержит дополнительную информацию об электронном письме в виде строки или массива.

 

Отправка электронной почты с помощью функции mail()

В этом разделе статьи показаны различные примеры отправки электронной почты с помощью функции PHP mail().

 

Пример 1. Отправка простого текстового сообщения электронной почты

В этом примере показано, как можно отправить простое текстовое электронное письмо с помощью функции mail(). Создайте файл PHP со следующим скриптом.

Вы должны установить действительный адрес электронной почты для переменной $to, чтобы получить вывод следующего скрипта. В качестве тела сообщения устанавливается простой текст.

<? php

// Установить адрес электронной почты получателя

$to="Receiver@gmail.com";

// Устанавливаем тему письма

$subject="Это тестовое письмо";

// Устанавливаем тело письма

$message="Тестирует тело письма";

// Устанавливаем информацию

заголовка $headers="From: sender@gmail.com \r\n ";

$headers.="Reply-To: sender@gmail.com \r\n ";


// Отправляем электронное письмо с помощью функции сообщения mail()

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

{

echo "Электронное письмо успешно отправлено. \r\n";

}

else {

echo "Электронное письмо не отправлено. <br />";

}

?>

 

 

Пример 2. Отправьте электронное письмо в формате HTML.

В этом примере показано, как можно отправить электронное письмо в формате HTML с помощью функции mail(). Создайте файл PHP со следующим скриптом.

Переменная $message инициализируется содержимым HTML, которое будет отправлено как тело сообщения электронной почты. В переменной $header указано, что содержимое электронного письма – HTML.

<? php

// Установите адрес электронной почты получателя

$to="AndreyEx@gmail.com";

// Устанавливаем тему электронного письма

$subject='Registration Successful';


// Задаем  текст сообщения электронной почты
 
$message='<h2> Ваша регистрация успешно завершена. </h2>

<p> username =<b> andreyex</b> <br/> password =<b> aswQ34ghqw</b> </p> ';

// Установить возврат каретки

$nl="\r\n";

"MIME-Версия: 1.0".$nl; $headers.='Content-type: text/html; charset =iso-8859-1 '.$nl;

// Устанавливаем дополнительную информацию заголовков

$headers.='To: Mehrab Hossain'.$nl;

$headers .='From: Админ'.$nl;

$headers.='Cc: staff@example.com'.$nl;

// Отправляем электронное письмо с помощью функции сообщения mail()

if ( mail($to, $subject, $message, $headers)) {

echo "Электронное письмо успешно отправлено. \ r \ n ";

}

else

{ echo "Электронное письмо не отправлено. \ r \ n "; }

?>

Пример 3. Отправьте электронное письмо с вложением.

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

Содержимое текстового файла считывается и кодируется перед прикреплением, а функция md5() используется в сценарии для генерации случайного числа для смешанного содержимого. Вся необходимая информация добавляется в переменные $headers и $message перед отправкой электронного письма.

<? php

// Установите адрес электронной почты получателя

$to="AndreyEx@gmail.com";

// Устанавливаем тему электронного письма

$subject="Вложение файла";


// Установить возврат каретки

$nl="\r\n";

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

$separator=md5(time());


// Считываем содержимое прикрепленного файла

$filename='myfile.txt';

$content=file_get_contents($filename);

$content=chunk_split(base64_encode($content));


// Установите сообщение электронной почты с информацией о вложении

$message="--".$separator.$nl;

$message .= "Content-Type: text/plain; charset="iso-8859-1"" . $nl;

$message.="Content-Transfer-Encoding: 8bit".$nl;

$message.="К письму прикреплен текстовый файл.".$nl;

$message.="--".$separator.$nl;

$message.="Content-Type: application/octet-stream; name="".$filename.""".$nl;

$message.="Content-Transfer-Encoding: base64".$nl;

$message.="Content-Disposition: attachment".$nl;

$message.=$content.$nl;

$message.="--".$separator."--";


// Устанавливаем заголовок Content-type

$headers='MIME-Version: 1.0'.$nl;

$headers.="От: andreyex1@gmail.com".$nl;

$headers.="Reply-To: andreyex1@gmail.com".$nl;

$headers.="Content-Type: multipart/mixed; boundary="".$separator.""".$nl;


// Отправка электронной почты с помощью функции сообщения mail()

if(mail($to,$subject,$message,$headers)){
echo "Электронное письмо с вложением успешно отправлено. \r\n";
}
else {
echo "Электронное письмо не отправлено. \r\n";
}

?>

 

 

Заключение

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

Exit mobile version