【问题标题】:sendmail genericstable not used when mailing发送邮件时未使用 sendmail genericstable
【发布时间】:2016-09-16 16:30:58
【问题描述】:

我想将 root 的所有邮件(基本上是所有 cron 作业的输出,但也包括 root 的其他邮件)转发到外部电子邮件地址 (hotmail)。

最简单的方法是使用别名文件。我更新了根别名: 根:mymail@hotmail.com 并运行新别名。

发送电子邮件后,我看到 hotmail MX 服务器“接受”了我的邮件。通过默默无闻的标准 MS 安全性让我认为它正在默默地丢弃我的电子邮件(不是垃圾邮件,......)。

此服务器用于为一个域(以及未来更多域)发送/接收邮件。

我检查了日志,似乎邮件是通过以下字段发送的:root@mail.domain.com

我很确定这是我的 hotmail 中从未收到的邮件的根目录。 现有的电子邮件地址使用 user@domain.com 作为 from。

现在我想从地址/ctladdr 重写这个(邮件)。 我认为这将是使用 genericstable 轻松解决的问题。

Genericstable(多次尝试):

root info@domain.com
root@localhost info@domain.com
root@mail.domain.com info@domain.com

使用 makemap 重新生成数据库。 我尝试了不同的设置。

我还删除了 EXPOSED_USER 根目录(从通用 m4 文件中)。我可以看到它不在生成的 cf 文件中。

我还为受信任的用户添加了 root。

在我的 m4 文件中:

FEATURE(genericstable)dnl
GENERICS_DOMAIN(domain.com)dnl
dnl GENERICS_DOMAIN(mail.domain.com)dnl
dnl GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
FEATURE(masquerade_envelope)dnl
dnl define(`LOCAL_RELAY', `localhost')dnl

我也有一个提交 mc 文件。不确定这是否重要,但我不这么认为。 (据我所知,我没有在 MSP 模式下运行 sendmail)。

我已经尝试将 GENERICS_DOMAIN 作为我想要的域或我想要重写的域。

全部安装 并重新启动 sendmail。

它似乎仍然以 root@mail.domain.com 的身份出现

我尝试在地址测试模式下使用 sendmail(bt;tryflags hs 并尝试 esmtp root)。这会正确修改为所需的源地址:info@domain.com。

任何人有其他想法为什么这不起作用?还是更多的调试方式? 我需要 local_relay 来完成这项工作吗? hosts 文件中应该包含什么内容? 127.0.0.1 的 Fqdn(mail.domain.com) 和主机名(so mail)?

编辑:我可能应该提到我有一个 MailScanner 的传入队列。

提前非常感谢!

【问题讨论】:

    标签: root sendmail


    【解决方案1】:

    我相信我的问题的根源是我希望标题中提到的所有邮件服务器都删除了 mail.example.com。 但是,第一个标头是将其提交到本地队列。 只有当 Sendmail 发送邮件(连接到 example.com 的外部 MX)时,翻译才完成。 所以标题中提到的服务器保留在 mail.example.com 中。

    我认为 mail.example.com 是 hotmail 未发送我的电子邮件的罪魁祸首。这似乎是错误的。 经过长时间的调查,我注意到如果我从 info@example.com 向 hotmail 发送了一封电子邮件,它在被接受时没有显示(不,甚至在垃圾邮件中也没有,...)。 如果我先向 info@example.com 发送一封电子邮件,然后再从 info@example.com 发回一封电子邮件,则邮件将成功发送到 hotmail 邮箱中。 同一个 example.com 域的其他用户似乎也是这种情况(因此不仅仅是 info@)。

    经过更多调查后,我注意到:html 电子邮件似乎更容易传递(通过 squirrelmail 发送)。纯文本邮件似乎被忽略了。

    注意:在所有情况下,hotmail 邮件服务器都接受了我的邮件。所以没有错误代码550或其他东西。我总是从 mail.example.com 服务器发送邮件(命令行或通过 Squirrelmail)。

    编辑:我又遇到了一个恼人的 Hotmail。我的消息再次被接受并且消失了。我之前一直发送到这个目标地址,没有任何问题。但是由于某种原因,Hotmail 邮件服务器突然得到了“改进”。 我想提供一个多年前打开的主题的参考,该主题仍在进行中,没有来自 MS 的反馈:https://answers.microsoft.com/en-us/outlook_com/forum/oemail-osend/messages-reported-as-250-queued-for-delivery-but/f451cda5-ba7d-45ff-b643-501efe2413dc?page=2。所以你绝对不是一个人。但也要了解,可能存在多个问题导致相同的症状。

    所以我想添加一些步骤,这可能有助于防止其他人感到头疼:

    • 使用清楚说明您的公司和域的页脚。
    • 使用 HTML 邮件
    • 由于某些原因,有时我会看到邮件直接在“已删除”文件夹中传递。不在垃圾邮件中
    • 由于某种原因,从您的域发送更多邮件会更好,因为您获得更多“声誉”
    • 您可以在此处向 Microsoft 提出案例: https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us&ccsid=635754176123391261 不要把你的期望值设得太高。他们主要会向您发回一封电子邮件,说明您没有资格获得补救,然后会在您的案例中回复标准答案。但是,创建此案例确实所做的可能是确认您的电子邮件确实被强大的 SmartScreen“过滤”(他们不会告诉您原因)。但这样至少你知道它是垃圾邮件过滤器,以下几点可能会帮助你。 确保传递消息 ID、时间戳、...(来自 maillog 的日志条目是我所做的)
    • 您的案例的答案肯定会提到使用 SNDS(智能网络数据服务)和 JMRP(垃圾邮件报告程序)
    • SNDS:我已订阅,但从未见过此处列出的任何内容。因此,如果您的电子邮件数量较少,请不要指望这里会显示任何内容
    • JMRP:这项服务会在邮件被用户标记为垃圾邮件时向您发送电子邮件。我也从来没有从中得到任何有用的东西。
    • 确保您的 DNS 设置正确(MX 记录、A 记录、PTR 记录)。这对我来说都是正确的,没有人能指出我的配置中的缺陷。
    • 如果您打开一个案例,他们还会向您发送一个链接,该链接指向“提高 Windows Live Hotmail 的电子邮件传送能力”。您也可以在 google 上找到它,它可能会提供一些指导。
    • 如果您明确发送电子邮件营销活动,请添加退出链接(我也不是这种情况)
    • 即使目标地址已将您的电子邮件地址列入白名单,您的邮件也可能会被静默丢弃。这超出了所有逻辑。
    • 让他们发送电子邮件并回复您的电子邮件也可能会送达您的电子邮件,尽管要求向您发送电子邮件以便您可以实际使用电子邮件看起来很笨拙。

    基本上,过滤器会尝试“智能地”确定正常的邮件行为,并据此采取行动。因此,通过改进邮件内容,您很有可能会收到邮件。

    总而言之,我只能建议不要使用 hotmail。如果您是一家企业,则不适合您自己或您的客户。除非你总是想怀疑对方是否真的收到了邮件。有时您可能可以打电话,但如果这是通过您的网站的潜在客户并且他们永远不会得到您的回复,那就失去了业务。当然这是用户的选择,但如果可以的话,试着说服他们使用他们拥有的另一个邮件帐户,因为没有其他提供商只是默默地删除邮件(或者至少我从未见过)。

    我希望这对其他人有帮助。

    【讨论】:

      猜你喜欢
      • 2014-12-10
      • 2018-11-14
      • 1970-01-01
      • 2013-11-22
      • 2013-10-21
      • 2017-01-20
      • 2018-07-22
      • 2013-05-28
      • 2012-12-02
      相关资源
      最近更新 更多