发送邮件时不使用 sendmail genericstable

sendmail genericstable not used when mailing

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

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

发送电子邮件时,我看到 hotmail MX 服务器 "accepts" 我的邮件。默默无闻的标准 MS Security 让我觉得它正在默默地丢弃我的电子邮件(不是垃圾邮件,...)。

此服务器用于 send/receive 一个域(以及未来更多域)的邮件。

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

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

现在我想从 address/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 才能完成这项工作吗?主机文件中应该包含什么? 127.0.0.1 的 Fqdn(mail.domain.com) 和主机名(so mail) ?

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

非常感谢!

我相信我的问题的根源是我希望 header 中提到的所有邮件服务器都删除 mail.example.com。 不过第一个header是提交给本地queue。 只有当 Sendmail 发送邮件(连接到 example.com 的外部 MX)时,翻译才会完成。 所以 header 中提到的服务器留在 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 邮件服务器突然变得 "improved"。 我想加入这个关于多年前打开的主题的参考,该主题仍在进行中,没有来自 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邮件
  • 出于某些原因,有时我会看到邮件直接投递到“已删除”文件夹中。不在垃圾邮件中
  • 出于某种原因,从您的域发送更多邮件会更好,因为您获得更多 "reputation"
  • 您可以在此处与 Microsoft 建立案例: https://support.microsoft.com/en-us/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=en-us&ccsid=635754176123391261 不要期望太高。他们主要会给你发回一封电子邮件,告诉你你没有资格进行补救,然后用标准答案回答你的案例。但是,创建此案例 所做 所做的可能是确认您的电子邮件确实已被强大的 SmartScreen "filtered" 收到(他们不会告诉您原因)。但这样至少你知道它是垃圾邮件过滤器,以下几点可能会帮助你。 确保传递消息 ID、时间戳、...(来自 maillog 的日志条目是我所做的)
  • 你的case答案肯定会提到使用SNDS(Smart Network Data Service)和JMRP(Junk Mail Reporting Program)
  • SNDS:我已经订阅了,但从未见过这里列出的任何内容。因此,如果您的电子邮件数量较少,请不要指望此处会显示任何内容
  • JMRP:这是一项服务,当用户将邮件标记为垃圾邮件时,它会向您发送电子邮件。我也从来没有从中得到任何有用的东西。
  • 确保您的 DNS 设置正确(MX 记录、A 记录、PTR 记录)。这对我来说都是正确的,没有人能指出我配置中的缺陷。
  • 如果您打开案例,他们还会向您发送 link 至 "Improving E-mail Deliverability into Windows Live Hotmail"。您也可以在 google 上找到它,它可能会提供一些指示。
  • 如果您显然是在发送电子邮件活动,请添加 Opt-out link(我又不是这种情况)
  • 即使目标地址将您的电子邮件地址列入白名单,您的邮件也可能会被悄悄丢弃。这超出了所有逻辑。
  • 让他们发送电子邮件并回复可能也会让您的电子邮件送达,尽管去要求给您发送电子邮件以便您实际使用电子邮件看起来很笨拙。

基本上,过滤器会尝试 "intelligently" 确定什么是正常的邮件行为,并据此采取行动。因此,您很有可能通过改进邮件内容来使邮件送达。

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

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