是否有相当于“/dev/null”的电子邮件地址?

rfm*_*moz 28 email mta

我正在寻找相当于天坑电子邮件地址的地址。本质上,我需要一个类似于/dev/null或非路由范围的丢弃机制240.0.0.0/4

null@devnull@、 或 等选项似乎none@似乎合理,但有人担心这些地址可能已被使用。

这个特定用例有事实上的标准吗?

更新:

一些注释指出使用<>和作为目标地址,但它们中的任何一个都会在 Postfix MTA 上:;产生响应:501 5.1.3 Bad recipient address syntax

<-  250 2.1.0 Ok
 -> RCPT TO:<:;>
<** 501 5.1.3 Bad recipient address syntax
 -> QUIT
<-  221 2.0.0 Bye
Run Code Online (Sandbox Code Playgroud)

和:

<-  250 2.1.0 Ok
 -> RCPT TO:<<>>
<** 501 5.1.3 Bad recipient address syntax
 -> QUIT
<-  221 2.0.0 Bye
Run Code Online (Sandbox Code Playgroud)

此外,空格也有相同的响应:

<-  250 2.1.0 Ok
 -> RCPT TO:< >
<** 501 5.1.3 Bad recipient address syntax
 -> QUIT
<-  221 2.0.0 Bye
Run Code Online (Sandbox Code Playgroud)

从客户端来看,它看起来一定很好,接收到250 2.0.0 O类似发送内容到 /dev/null 的内容:

$ echo test > /dev/null && echo $?
0
Run Code Online (Sandbox Code Playgroud)

use*_*686 24

\n

null@devnull@、 或 等选项似乎none@似乎合理,但有人担心这些地址可能已被使用。

\n
\n

这些都不是标准的,而且它们确实可能已经在使用中。

\n

据我所知,在发送到任意随机域\xe2\x80\x93时,没有特殊地址可以保证不送达,任何语法上有效的“本地部分”对于送达同样有效,并且只有接收 MTA 可以决定是否接受;发送 MTA 不能基于本地部分拒绝。

\n

因此,在所有情况下,您都必须首先决定特定的(子)域。

\n

建议:

\n
    \n
  • 在您自己的域名(或其子域;您可以将 MX 记录放在子域上)设置 MTA。然后您将得到保证,egnull@不会在该特定域中使用。当然,发件人仍会尝试与您联系,但您可以直接将该邮箱别名为/dev/null您自己的邮箱。

    \n
  • \n
  • 现在有一个最近的惯例,即在明确认为永远不会接收电子邮件的域上创建“空 MX”记录(与没有 MX 记录的域相反,在这种情况下,该域将隐式是其自己的 MX)。如果您创建指向服务器的单个 MX 记录.,这将导致许多新 MTA 自动传送失败。同样,您可以为此使用子域,而不是专用整个域。

    \n

    example.com(and .net, and .org) 是一个存在的真实域,但保留用于示例和文档(即它永远不会有真实的邮箱);作为其中的一部分,它实际上有一个“null MX”记录。

    \n
  • \n
  • 有些保留域,例如[anything].invalid,根本不会存在于 DNS 中(甚至不存在 null-MX),因此您的源 MTA 将立即传送失败。

    \n
  • \n
\n

  • 我不同意使用明确删除所有内容的地址和无效地址之间没有太大区别。无效地址通常会生成 DSN,尤其是在域本身无效的情况下,而使用仅删除所有内容的功能地址则不会。 (6认同)

VL-*_*-80 12

由于问题提到了 Postfix MTA,因此以下是如何设置 Postfix 以使特定地址的行为就像/dev/null.

Postfix 附带了一个丢弃邮件投递代理,其描述为:

Discard (8)投递代理假装投递了投递请求中的所有收件人,记录“下一跳”目的地作为丢弃邮件的原因,更新队列文件,并将收件人标记为已完成或通知队列管理器:应稍后再次尝试交付。

可以使用传输映射将电子邮件地址配置为由丢弃代理处理:

/etc/postfix/main.cf:

transport_maps = hash:/etc/postfix/transport
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/transport:

dev-null@example.com    discard:
Run Code Online (Sandbox Code Playgroud)

然后执行postmap /etc/postfix/transport创建传输数据库的索引文件并重新加载 Postfix 守护程序(重新加载或重新启动守护程序的命令可能会根据所使用的操作系统而有所不同)。

因此,Postfix 将丢弃发送至 的邮件dev-null@example.com

整个域或子域的邮件可以通过以下方式丢弃:

/etc/postfix/transport:

# discard all mail to domain 'example.com':
example.com    discard:

# discard all mail to subdomains of 'example.com':
.example.com   discard:
Run Code Online (Sandbox Code Playgroud)


squ*_*man 3

不确定任何事实上的标准,但我通常只使用以noreply-. 您真正需要做的就是确保域中不存在您使用的地址。

这并不完全/dev/nullMTA 仍会尝试路由它而不是直接丢弃它,但它最终却无处可去。

  • 我认为这与“/dev/null”非常不一样。因为目标服务器会报告错误,并且您会在收件箱中收到该错误。 (5认同)