У нас есть постфиксный сервер, который требует аутентификации для ретрансляции SMTP через него. Мы используем виртуальные почтовые ящики в базе данных MySQL.
Сообщение было передано через нашу систему, и нам нужно определить, какая из наших учетных записей была использована для его отправки.
Заголовки сообщения содержат:
Received: from User (c-76-109-241-139.hsd1.fl.comcast.net [xx.109.xxx.139])
by ourserver.com (Postfix) with ESMTPA id 7BA184B4AD4;
Tue, 3 Jul 2012 05:42:59 -0400 (EDT)
У нас нет пользователя с именем «Пользователь», и IP-адрес не тот, с которого мы будем отправлять почту. Я хотел бы узнать, какая из наших учетных записей отправителя прошла проверку подлинности при отправке сообщения.
Есть ли способ отследить это?
User
указано имя вашего почтового сервера. Вы видели что-то подобноеAuthenticated sender:
?Ответы:
Если вы grep для идентификатора сообщения (7BA184B4AD4 в вашем случае),
/var/log/mail.log
вы должны найти строку журнала с указаниемsasl_username
. Например:Редактировать: если вы установите
smtpd_sasl_authenticated_header
опцию в/etc/postfix/main.cf
Postfix, вы добавите имя пользователя SASL вReceived
заголовок почты. Обратите внимание, что этот заголовок может быть подделан, поэтому вышеизложенное является единственным надежным способом определить, какой пользователь отправил сообщение.источник
/var/log/maillog