【问题标题】:cat file inside mymail@mail.com, showing the multiple lines (and not single line)mymail@mail.com 中的 cat 文件,显示多行(而不是单行)
【发布时间】:2019-01-29 00:12:58
【问题描述】:

我创建了一个包含一些不同文本行的文件,例如:

2345, someinfo1, someinfo2, someinfo3
3567, someinfo1, someinfo2, someinfo3
7812, someinfo1, someinfo2, someinfo3

其中 someinfo1、someinfo2 和 someinfo3 通常(如果不总是)是不同的数据。

我需要在邮件中包含上述文件输出作为正文。所以我在做:

$ cat myfile.txt | mail mymail@mail.com

但是,我看到邮件正文中的文件输出为单行(如下所示),而不是如上所示的多行:

2345, someinfo1, someinfo2, someinfo3 3567, someinfo1, someinfo2, someinfo3  7812, someinfo1, someinfo2, someinfo3

我需要你的帮助来解决这个问题。 我认为问题在于邮件使用 HTML 格式来显示文件,因此文件需要以某种方式解释文件所有行的行尾 ($),以便对于每一行,它将显示当前行下方的下一行,并且不在同一行。 我已经设法在每一行的末尾插入新行,但这会在邮件中显示每行后有空行的文件,即:

2345, someinfo1, someinfo2, someinfo3

3567, someinfo1, someinfo2, someinfo3

7812, someinfo1, someinfo2, someinfo3

它比在 1 行中显示所有内容更好,但是,这不是我想要做的,我不想在每一行之后显示空白行。 任何实现我需要的文件邮件输出的建议都非常受欢迎!

【问题讨论】:

  • 您显示的代码不会像您所说的那样做,除非您在某处有一些不相关的部分会强制显示消息,例如作为 HTML。我们能看到您收到的消息的(可能是经过修剪和匿名处理的)来源吗?
  • 尝试使用cat myfile.txt | mailx mymail@mail.com -s "this is subject"

标签: email hp-ux


【解决方案1】:

现代邮件客户端不能很好地理解mailmailx发送的纯文本格式,编写一个符合MIME的邮件客户端并非易事。

您可以尝试将行尾从 \n 更改为 \r\n

cat file | awk '{printf("%s\r\n", $0);}' | mail mymail@mail.com

(注意:在我的 HP-UX 11.23 上 sed 不理解 \r 所以我在这里使用 awk。)

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多