如何向具有域前缀用户名的本地用户发送邮件?

如何向具有域前缀用户名的本地用户发送邮件?

如何向具有域前缀用户名的本地用户发送邮件?

运行 SUSE Linux Enterprise Server 11.3,并使用 Heirloom mailx 版本 12.5 7/5/10 加入 Active Directory 域

设想:

我的服务器上有 2 个用户,一个本地用户帐户和一个域用户帐户:

  • 杰夫
  • DOM1\约翰

以 DOM1\john 身份登录,我可以从终端发出此命令echo "hello" | mail -s "test" jeff,并且 jeff 成功接收到该消息。毫不奇怪,标头在FROM字段中读取转义的反斜杠From: "DOM1\\john"@server.example.com

奇怪的是,如果杰夫只是回复该消息,杰夫将收到一个Undelivered Mail Returned to Sender收件箱。标题显示,所以我可以看到反斜杠被删除了。我以 jeff 的身份尝试了以下命令来尝试转义反斜杠,但均无济于事,并且在未传递消息的标头中始终省略反斜杠:To: [email protected]TO

  • echo "hello" | mail -s "test" DOM1\john
  • echo "hello" | mail -s "test" 'DOM1\john'
  • echo "hello" | mail -s "test" "DOM1\john"
  • echo "hello" | mail -s "test" DOM1\[email protected]
  • echo "hello" | mail -s "test" 'DOM1\john'@server.example.com
  • echo "hello" | mail -s "test" "DOM1\john"@server.example.com
  • echo "hello" | mail -s "test" DOM1\\john
  • echo "hello" | mail -s "test" 'DOM1\\john'
  • echo "hello" | mail -s "test" "DOM1\\john"
  • echo "hello" | mail -s "test" DOM1\\[email protected]
  • echo "hello" | mail -s "test" 'DOM1\\john'@server.example.com
  • echo "hello" | mail -s "test" "DOM1\\john"@server.example.com

更奇怪的是,如果我尝试 3 个反斜杠,echo "hello" | mail -s "test" DOM1\\\john它不会传递消息,也不会发出未传递的消息,它只是默默地失败。

如果我尝试仅发送不带域前缀 的邮件,echo "hello" | mail -s "test" john我会收到预期的未送达消息,指出用户 john 不存在。

另外,要明确的是,是的,这些域用户有电子邮件帐户,例如[电子邮件受保护],但我们不想发送到该邮件服务器帐户 - 我们只想使用 SLES 上的本地邮件帐户,以便它们可以与该服务器上的其他本地非域帐户进行通信。

答案1

你太轻易屈服了。你看到了标题

From: "DOM1\\john"@server.example.com

这就是您所需要的,但您必须保留双引号和双反斜杠:

echo "hello" | mail -s "test" '"DOM1\\john"@server.example.com'

维基百科在电子邮件地址的本地部分:

允许使用空格和"(),:;<>@[\]字符,但有限制(它们只能在带引号的字符串内使用,...此外,反斜杠...前面必须有反斜杠)。

当最外面的引号是本地部分的最外面的字符时,可能存在带引号的字符串...例如“abcdefghixyz”@example.com。然而,引用的字符串和字符并不常用。 RFC 5321 还警告“希望接收邮件的主机应该避免定义本地部分需要(或使用)引用字符串形式的邮箱”。

相关内容