postfix, spam assassin, swiftmailer

Веб-сервер Linux, на котором запущен локальный почтовый сервер postfix, веб-системы PHP на apache. Postfix настроен на передачу электронной почты в spampd для проверки на спам, но локальные сети исключены:

smtp       inet  n       -       y       -       20      smtpd
-o smtpd_proxy_filter=127.0.0.1:10025
-o smtpd_client_connection_count_limit=10 127.0.0.1:10026 inet n  -       n       -        -      smtpd
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_data_restrictions=
    -o mynetworks=127.0.0.0/8
    -o receive_override_options=no_unknown_recipient_checks

Это работает для всех наших веб-систем, кроме новейшей, на которой работают Yii2 и Swiftmailer. Электронные письма из этой системы передаются в spampd без необходимости, и это резко снижает время отклика.

Вот типичный почтовый журнал, показывающий проблему:

Sep 17 10:37:33 ip-172-31-12-147 postfix/smtpd[28970]: connect from localhost[127.0.0.1]
Sep 17 10:37:33 ip-172-31-12-147 postfix/smtpd[28990]: NOQUEUE: client=localhost[127.0.0.1]
Sep 17 10:37:33 ip-172-31-12-147 postfix/smtpd[28970]: E3526409A9: client=localhost[127.0.0.1], orig_client=localhost[127.0.0.1]
Sep 17 10:37:33 ip-172-31-12-147 spampd[23514]: processing message <c2ff05d7cabef914ac2fce75430a8257@alpinebookings.cbdweb.net> for <***@cbdweb.net>
Sep 17 10:37:39 ip-172-31-12-147 spampd[23514]: clean message <c2ff05d7cabef914ac2fce75430a8257@alpinebookings.cbdweb.net> (-102.90/5.00) from <***@cbdweb.net> for <***@cbdweb.net> in 5.14s, 1250 bytes.
Sep 17 10:37:39 ip-172-31-12-147 postfix/cleanup[28971]: E3526409A9: message-id=<c2ff05d7cabef914ac2fce75430a8257@alpinebookings.cbdweb.net>
Sep 17 10:37:39 ip-172-31-12-147 postfix/qmgr[20013]: E3526409A9: from=<***@cbdweb.net>, size=1753, nrcpt=1 (queue active)
Sep 17 10:37:39 ip-172-31-12-147 postfix/smtpd[28990]: proxy-accept: END-OF-MESSAGE: 250 2.0.0 Ok: queued as E3526409A9; from=<***@cbdweb.net> to=<***@cbdweb.net> proto=ESMTP helo=<alpinebookings.cbdweb.net>
Sep 17 10:37:39 ip-172-31-12-147 postfix/smtpd[28970]: disconnect from localhost[127.0.0.1] ehlo=1 xforward=1 mail=1 rcpt=1 data=1 quit=1 commands=6
Sep 17 10:37:39 ip-172-31-12-147 postfix/smtpd[28990]: disconnect from localhost[127.0.0.1] ehlo=1 mail=2 rcpt=2 data=2 quit=1 commands=8
Sep 17 10:37:39 ip-172-31-12-147 postfix/smtp[28983]: E3526409A9: to=<***@cbdweb.net>, relay=ip-172-31-11-15.ap-southeast-2.compute.internal[172.31.11.15]:25, delay=5.2, delays=5.2/0/0.01/0, dsn=2.0.0, status=sent (250 Message accepted for delivery)
Sep 17 10:37:39 ip-172-31-12-147 postfix/qmgr[20013]: E3526409A9: removed

Сравните с электронной почтой, отправленной сайтом wordpress на том же сервере:

Sep 17 11:00:04 ip-172-31-12-147 postfix/pickup[27803]: 33917409AA: uid=33 from=<apache>
Sep 17 11:00:04 ip-172-31-12-147 postfix/cleanup[30456]: 33917409AA: message-id=<99bd4d40cc970cae10758aed89bf60d4@patscherkofel.com.au>
Sep 17 11:00:04 ip-172-31-12-147 postfix/qmgr[20013]: 33917409AA: from=<***@cbdweb.net>, size=847, nrcpt=1 (queue active)
Sep 17 11:00:24 ip-172-31-12-147 postfix/smtp[30458]: 33917409AA: to=<***@***.com>, relay=mx1.***.com.au[103.240.135.130]:25, delay=20, delays=0.05/0/0.08/20, dsn=2.0.0, status=sent (250 Ok: queued as 2F3701100075)
Sep 17 11:00:24 ip-172-31-12-147 postfix/qmgr[20013]: 33917409AA: removed

Конфигурация почтовой программы Yii2:

'mailer' => [
        'class' => 'yii\swiftmailer\Mailer',
        // send all mails to a file by default. You have to set
        // 'useFileTransport' to false and configure a transport
        // for the mailer to send real emails.
        'useFileTransport' => false,
        'transport' => [
            'class' => 'Swift_SmtpTransport',
            'host' => $params['level'] === 'DEV' ? '***.cbdweb.net' : '127.0.0.1',
            'port' => '25'
        ],
    ],
0
задан 17 September 2019 в 04:37
1 ответ

Вместо использования sendmail, можно избежать проблемы milter (почтового фильтра), используя порт SMTP, который postfix прослушивает для вывода от milter. Это полностью объясняется в моем ответе на следующий вопрос на Как запретить postfix пересылать почту в spampd, когда соединение идет с localhost

0
ответ дан 5 December 2019 в 00:48

Теги

Похожие вопросы