我有一个运行 Ubuntu 18.04 和 Apache 的 Web 服务器。我正在运行三个站点。查看邮件日志,我可以看到有很多发送电子邮件的尝试,但是我无法确定来源(例如网站的哪个页面正在生成消息)。根据我在文件中看到的主题行,许多邮件看起来像是垃圾邮件mail.log
。
我的问题是,我如何知道这是从哪里来的?
- 拥有多个站点会使事情变得更加复杂。
- 我想知道如何在日志中识别来源。如果我能找到特定的网页就更好了。从反向 DNS 的角度来看,当前配置不正确,但下次我会担心这个问题。
- 我只是想找到电子邮件的来源。
我检查了服务器访问日志,没有人登录到服务器,因此它一定是通过其中一个网站进行的。服务器防火墙阻止到邮件服务器的传入连接。
mail.log
显示电子邮件的文件副本。我改变了一些名字。
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1t001734: <-- EHLO localhost.localdomain
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-localhost.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet you
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-ENHANCEDSTATUSCODES
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-PIPELINING
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-EXPN
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-VERB
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-8BITMIME
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-SIZE
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-DSN
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-ETRN
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-AUTH PLAIN
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250-DELIVERBY
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250 HELP
Jun 1 14:34:45 localhost sm-mta[1734]: STARTTLS=read, info: fds=8/4, err=2
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: <-- MAIL From:<[email protected]> SIZE=10825
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250 2.1.0 <[email protected]>... Sender ok
Jun 1 14:34:45 localhost sm-mta[1734]: STARTTLS=read, info: fds=8/4, err=2
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: <-- RCPT To:<[email protected]>
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250 2.1.5 <[email protected]>... Recipient ok
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: <-- DATA
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 354 Enter mail, end with "." on a line by itself
Jun 1 14:34:45 localhost sm-mta[1734]: STARTTLS=read, info: fds=8/4, err=2
Jun 1 14:34:45 localhost sm-mta[1734]: STARTTLS=read, info: fds=8/4, err=2
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: from=<[email protected]>, size=11136, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTPS, daemon=MTA-v4, relay=localhost.localdo$
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1u001734: --- 250 2.0.0 25154j1u001734 Message accepted for delivery
Jun 1 14:34:45 localhost sm-mta[1736]: 25154j1u001734: makeconnection (gmail-smtp-in.l.google.com. [IPv6:2404:6800:4003:c06:0:0:0:1b]) failed: Network is unreachable
Jun 1 14:34:45 localhost sm-mta[1734]: STARTTLS=read, info: fds=8/4, err=2
Jun 1 14:34:45 localhost sendmail[1733]: 25154jKf001733: [email protected], [email protected] (33/33), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=40825, relay=[127.0.0.1] [127.0.0.1], dsn=2.0$
Jun 1 14:34:45 localhost sm-mta[1734]: 25154j1v001734: <-- QUIT
答案1
我假设你的网站使用php
?
然后你可以专门为每个站点添加一个管理值,告诉 php邮件() 函数如何使用sendmail
,并在其中指定一个 from-header,可能类似于[email protected]
:
https://serverfault.com/questions/165499/configuring-php-mail-per-domain
这样,您将始终在 SMTP 标头中找到正确的发件人以供分析之用,并且退回邮件也将被正确传送。