我是一些服务器的新东西,需要一些帮助了解/ var / log / maillog文件说的是什么。
我发送了200封电子邮件给我正在运行的电子邮件通讯。 在“maillog”文件中,我显示了一些说“status = sent”,“status = deferred”,“status = Accepted for delivery”,“status = sent(Message Qued for delivery)”,“status = sent公认)。
这些状态究竟意味着什么? 换句话说,我假定有一条消息说“消息接受”意味着接收者实际上阅读了电子邮件,是正确的?,但是只有“已发送”或“要求发送”的电子邮件实际上并没有到达接收者呢?
我怎样才能知道如何解释这些状态,并了解我的电子邮件是否真正被阅读过,或者在收件人的邮件服务器上等待他们下载和阅读等等。有没有什么地方可以解释这些? 我想知道我的电子邮件程序是否真的在发送电子邮件,发送的电子邮件,哪些邮件实际发送给收件人。
感谢您的任何提示或build议。
状态值本身并不像直接跟在其后的括号中的数据那样有价值,这更好地描述了正在发生的事情。
“消息排队等待发送” – 这意味着您的服务器和目标服务器之间的事务还没有发生,这通常意味着刚刚发送消息,而您的SMTP服务器正在确认它存在
“接受消息” – 这意味着destiantion服务器确认消息已经收到。 (它不表示阅读)
“退回” – 这通常意味着出现了问题 – 要么是由于电子邮件地址不存在而拒绝来自目标电子邮件服务器的电子邮件,要么由于在RBL上而拒绝该电子邮件地址。 这也意味着电子邮件不会被传送,也不会被服务器处理。 又:这个消息在水里死了。
“Deferred”(延迟) – 这意味着暂时的事情已经发生,导致消息不被传递,但服务器(你的)还没有放弃,并会在稍后再试。 当目标SMTP服务器使用称为“灰名单”的反垃圾邮件技术时,这也很常见。
其他的东西,这里是我的mail.log的一个日志行的例子:
postfix/qmgr[32131]: 3858792A80: from=<[email protected]>, size=757, nrcpt=1 (queue active) postfix/smtp[32135]: 3858792A80: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.91.27]:25], delay=8, delays=8/0.01/0.4/1.5, dsn=2.0.0, status=sent (250 2.0.0 OK 1307169606 6si4629303qcd.120)
relay = gmail-smtp-in.l.google.com [74.125.91.27]:25] =“到”电子邮件地址的目标SMTP服务器
延迟= 0.08 / 0.01 / 0.4 / 1.5 =
- 0.08s =从消息到达到最后一个活动队列条目的时间
- 0.01s =从最后一个活动队列input到连接build立的时间
- 0.4s =谈判连接的时间(EHLO等)
- 1.5s =传输整个消息的时间
学习的一个好方法就是简单地尾随邮件日志并以各种方式发送电子邮件 – 观察发送给不良帐户时会发生什么; 或使用灰名单的服务器。 阻塞出站端口并发送一个。
Rovangju的答案在一些重要部分是不正确的。
发送的状态条目意味着远程服务器接受了该消息。 还有其他任何意味着它仍然在您的服务器上或不在任何地方。 延期意味着似乎发生了临时错误,反弹意味着该消息不会在任何地方发送,但是通知正在或将被发送给原始发件人。 还有一个额外的等待状态,但是你只会看到如果你已经告诉你的postfix实例采取保持操作,并且需要修改configuration。
状态条目括号中的注释是远程服务器在发送电子邮件时给出的答复。 查看邮件被拒绝,推迟或保留的原因很有用。 如果被发送,那么除了好奇之外没有任何价值。 那么,主要是。 在极less数情况下,对于接受服务器的消息的服务器的pipe理员,或者在日志中继邮件跟踪的特殊情况下,这种情况可能是有用的。 在他们之外只是在状态=发送条目中的信息。
接受它的远程服务器与正在读取的消息没有关系。 这将是一个“阅读收据”,实际上是一个不同的电子邮件回到发件人通知他们。 只有处理向用户显示邮件的远程服务器(可能不是您提供给服务器的服务器)的远程服务器才能够进行configuration,并且读者使用的客户端也允许这样做。
在运行postfix邮件中继的许多年里,我从来没有见过接受邮件的状态。 因此我怀疑这是一个入站消息,并且该消息被接受用于本地交付,而不是用于中继到另一个目的地。 我期望从后缀中继状态=发送(邮件接受交付)。 和上面一样,这将是来自远程服务器的消息。 如果小时后缀系统没有你发送给本地邮箱我会担心。
原因是postfix状态消息本身是一个单词,而不是句子。 也许你打错了或误读了? 如果不是,如果你能粘贴实际的线我可能能够进一步帮助。
状态行由postfix中的stmp客户端logging,postfix接受的邮件由smtpd完成。 您也可以通过在日志条目中查找postfix / smtp或postfix / smtpd来轻松地区分它们。 前者是后缀发送消息,后者是后缀接受它。
状态消息在重要性方面是更高的优先级,因为它表示状态。 其余的仅仅是关于状态的解释或附加信息。 如果你只是想知道给定交易的状态是什么,那么status =之后的单词就是你所需要知道的。 但是请注意,如果特定电子邮件的收件人转到不同的目的地,例如雅虎收件人和gmail收件人,则每个投递尝试都会有一个状态条目。 而且,延迟的消息将具有至less两个状态条目 – 初始延期和最终结果。 这可能会导致数十个投递尝试。
在这个意义上,记住日志中的状态条目只是告诉你这个事务的结果是很重要的。
如果你要运行postfix中继,访问postfix.org和后缀资源(如邮件列表和/或Postfix的书)是一个明智的想法。 当您尝试发送批量电子邮件时,您可能会遇到一些容易犯的错误。 同时关注日志是一个好主意,最好的学习方法是利用postfix社区以及日志分析社区。 学习postfix的工作方式将会使您对日志有很多疑问。 这对你来说会更有用,而不仅仅是看看发生了什么事情,因为你可以看看日志,知道什么是错的,或者知道从哪里开始。 有什么会出错的。
干杯