Postfix особенности настройки на mail.ru
email send script
postfix
unrotable sender
sendmail
email
550
После базовой настройки отправки почты с хоста yuorsite.ru при отправке на yandex все проходило хорошо, а при отправке на mail.ru в логах ошибка:
Оказалось, надо, чтобы имя хоста было прописано в DNS.То есть, хост yuorsite.ru не определялся через DNS, поэтому почта отвергалась (bounced).
Есть два простых выхода:
- прописать этот хост в DNS (A-запись)
- поменять в файле /etc/mailname имя хоста на уже существующее в DNS
При этом надо проверить в настройках /etc/postfix/main.cf все строки, где упоминается mailname, myhostname (строка определения д.б. выше первого упоминания по коду), myorigin, mydestination.
Кроме того, надо привести в соответствие запись о имени хоста в /etc/hosts.
Еще в логах была ошибка, связанная с UTF8 кодировкой:
Устраняется добавлением параметра в конфигуратор postfix.
Пример рабочего конфига:
myhostname = yuorsite.ru
smtpd_banner = $myhostname ESMTP
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtputf8_enable = no
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
Пример php-скрипта для отладки с html-разметкой:
<?php
$to = 'aizaro@mail.ru';
$subject = 'Тестовое письмо с HTML';
$message = '
<html>
<head>
<title>Тестовое письмо с HTML</title>
<meta charset="utf8">
</head>
<body>
<p>Пример таблицы</p>
<table border=1>
<tr>
<th>Колонка 1</th><th>Колонка 2</th><th>Колонка 3</th><th>Колонка 4</th>
</tr>
<tr>
<td>Ячейка 1</td><td>Ячейка 2</td><td>Ячейка 3</td><td>Ячейка 4</td>
</tr>
<tr>
<td>Ячейка 5</td><td>Ячейка 6</td><td>Ячейка 7</td><td>Ячейка 8</td>
</tr>
</table>
</body>
</html>
';
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=utf8';
$headers[] = 'To: Receiver <aizaro@mail.ru>';
$headers[] = 'From: Sender <robot@yoursite.ru>';
$headers[] = 'Cc: aizaro@mail.ru';
$result = mail($to, $subject, $message, implode("\r\n", $headers));
echo $result ? 'OK' : 'Error';
?>
Полезные статьи по настройке: