MTA - Агент передачи сообщений

MTA (Mail Transfer Agent, Message Transfer Agent, Агент передачи сообщений) - почтовые сервера:

Термины «конверт» (envelope), «заголовок» (header), «тело» (body) и «вложение» (attachment) относятся к различным частям данных, которыми обмениваются агенты передачи сообщений (MTA). Имена и синтаксис параметров берут начало в документах RFC.

Тестирование MTA

  • Отсылка почты из консоли.
    echo "hello from `hostname`" | mail -s "test" root
    echo "hello from `uptime` `who -q`" | mail -s "`hostname`" root
  • Отсылка почты из консоли. Ключ -v позволяет видеть трассировку сообщения, если smtp сервером является sendmail.
    echo "Subject: test" | /usr/lib/sendmail -v root
  • Примеры использования telnet и MTA. Тестирование почтовых серверов при помощи telnet.
  • Как пользоваться OpenSSL и MTA. Тестирование почтовых серверов с использованием зашифрованного соединения.
  • smtp-source утилита генерирующая smtp трафик. Например, отослать 10 сообщений
    # smtp-source -m 10 -f senders@example.com -t recipient@example.com localhost:25
  • swaks - альтернативой Примеры использования telnet для тестирования SMTP. Отсылка почты:
    # apt install swaks
    # swaks --to xxx@gmail.com --server mail.example.com --from you@example.com --auth CRAM-MD5
     --auth-user you@example.com --header-X-Test "test email"
  • PHP код:
    php -r 'echo "\n".base64_encode("you@example.com")."\n".base64_encode("password")."\n";'

Сервисы тестирование MTA

Скрипт использую для тестирования почты в том числе и на виртуальных хостингах. Пример кода с проверкой, если отправка не произошла, выдаст ошибку:

test_mail.php
<?php
 
	// if (isset($_POST['name']) && isset($_POST['phone']) && isset($_POST['full_name'])) {
	//     //$day = $_POST['day'];
	//     $phone = $_POST['phone'];
	//     $name = $_POST['name'];
	//     $full_name = $_POST['full_name'];
	// }
 
	// $message = "
	// 			Имя: $name<br>
	// 			Фамилия: $full_name<br>
	// 			Контактный телефон: $phone<br>";
$message = "тестовый текст сообщения";
 
$to = "seo@mirax-hotel.com.ua";
$subject = "Test Mail";
$from = "noreply@mirax-hotel.com.ua";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= "From: <".$from.">\r\n";
$headers .= 'Cc: darkfire@dieg.info' . "\r\n";
 
if (mail($to,$subject,$message,$headers)) {
	echo "OK";
}
else {
	// echo "Error";
	exit("Server received '{$to}' from your browser.");
}
 
?>
PQ VPS сервера в 28+ странах.