我想使文本加粗并使用SMTP作为邮件发送该输出。
邮件配置正确,我正在收到邮件。
但是我得到的是.bin
文件而不是印刷行。
请帮助我。
这是我的代码,用于使文本变为粗体
bold=$(tput bold)
normal=$(tput sgr0)
echo "this is ${bold}bold${normal} but this isn't" > test.txt
cat test.txt | mailx -vvv -r "xyz@hotmail.com" -S smtp="xx.xxx.xxx.xx" xyz@hotmail.com
这是粗体(以粗体显示),但不是”。
这是邮件通知。
答案 0 :(得分:2)
tput
是使用terminfo(3)
(或termcap(3)
,取决于系统)来获取您的交互式终端用于生成的转义序列的命令输出上的粗体字符。这不适用于电子邮件,因为接收方的终端可能会不同(通常不会,因为通常人们使用图形工具而非基于文本的终端来阅读电子邮件)
电子邮件中没有粗体的概念。它采用HTML或其他文档格式(例如RTF,Word doc,Word docx等),因此在大多数邮件阅读器中,粗体文本将不会出现(许多文本阅读器将避免转义序列出现在消息,因此它们不会使实际的文本显示乱码
专注于消息的一部分是否很重要,您可以用不依赖于设备的***** >>>>标记它,例如<<<< *****吗?
如果您坚持要发送个人终端转义序列来表示粗体文本,而该文本在世界上其他任何地方都不会显示为粗体,那么您会收到很多人的抱怨,这些人的屏幕会被您的消息弄乱。更糟糕的是,这些信息是否会自动发送。
答案 1 :(得分:0)
如果在文本中添加转义序列(如tput bold
产生的转义序列,然后通过mailx
或类似方式发送,则邮件程序可能会发现您发送的文本不是纯ASCII并推断出可能是二进制文件。
结果,文件作为邮件的二进制部分发送。