Почтовый журнал Exim в произвольном формате - PullRequest
0 голосов
/ 10 июля 2020
1 user@gmail.com F=<user2@domain.com>
  P=<user2@domain.com> R=dnslookup T=remote_smtp
  H=gmail-smtp-in.l.google.com [74.125.200.26]: SMTP
  error from remote mail server after RCPT TO:<user@gmail.com>:
  550-5.1.1 The email account that you tried to reach
  does not exist. Please try\n550-5.1.1 double-checking
  the recipient's email address for typos or\n550-5.1.1
  unnecessary spaces. Learn more at\n550 5.1.1 https://support.google.com/mail/?p=NoSuch220.233.239.61
  l15si5239548pgt.537 - gsmtp
  
  1 unicorns@domain.com F=<corporatesales@domain.com>
  P=<corporatesales@domain.com> R=dnslookup T=remote_smtp
  H=exetel-com-au.mail.protection.outlook.com [104.47.117.36]:
  SMTP error from remote mail server after RCPT TO:<unicorns@domain.com>:
  550 5.4.1 Recipient address rejected: Access denied.
  AS(201806281) [SY3AUS01FT007.eop-AUS01.prod.protection.outlook.com]

1 root@yassyvc.upabx.domain.com F=<> P=<> R=dnslookup
  T=remote_smtp H=pm.po.domain.com [220.233.0.23]:
  SMTP error from remote mail server after RCPT TO:<root@yassyvc.upabx.domain.com>:
  550 relay not permitted
  
  
1 user4@bigpond.com F=<donotreply@domain.com>
  P=<donotreply@domain.com> R=dnslookup T=remote_smtp
  H=extmail.bigpond.com [203.36.137.234]: SMTP error
  from remote mail server after pipelined MAIL FROM:<donotreply@domain.com>
  SIZE=44827: 554 5.5.4 [13.239.171.158] Amazon EC2 daily
  taffic limit met. Please email postmaster@bigpond.com
  and provide the IP address of your instance for whitelisting.
  IB107

Я пытаюсь привести журналы электронной почты в правильный формат заблокированный код / ​​причина | from_email_address | to_email_address | сообщение | время .. в виде таблицы

Мне удалось получить и использовать ниже

eximstats -nr -nt -txt /var/log/exim4/mainlog.8.gz | sed -e/List/\{ -e:1 -en\;b1 -e\} -ed |grep -o -P '(?<=TO:<).*(?=>:)' ===> RCPT TO
eximstats -nr -nt -txt /var/log/exim4/mainlog.8.gz | sed -e/List/\{ -e:1 -en\;b1 -e\} -ed |grep  F= | cut -f1 -d"F" ===> from addr

Есть ли способ получить другие значения, такие как код ошибки и сообщение об ошибке?

...