linux - 将输出文件发送到邮件而不更改数据
问题描述
我有一个来自脚本的名为result的输出文件,如下所示:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
我使用下面的列命令按顺序获取输出,如下所示:
column -t -s " " result > result_new
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
并且在使用下面的邮件命令将result_new文件发送到邮件后,如以下脚本所示,我没有得到预期的输出。
#!/bin/bash
mail -s "COLUMN CHECK_1" name@gmail.com < result_new
我在邮件中收到此输出:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
我在邮件中的预期输出应该是这样的:
|first_t | PASS |
|second_t | PASS |
|third_t | File_Error |
有人能告诉我我应该在这里做什么吗?
解决方案
我假设问题出在(接收)电子邮件客户端,并且它使用可变宽度字体显示消息(例如,空格不如字母宽);为了解决这个问题,我可以想到几个选项:
- 将输出作为 ascii 文本文件附件发送(用户需要使用 ascii 文本阅读器打开附件 - 例如,、、
vim
等notepad
) MIME + 'text/html'
格式化传出电子邮件(例如,电子邮件 - 例如,,,,,任何指向您的系统等;这也假设(接收)电子邮件客户端能够显示sendmail
编码mailx
消息)mutt
mail
MIME
我在发送电子邮件(从 linux 到 Windows/Mac 用户)时使用的一个简单sendmail
示例,我希望将电子邮件的内容显示为固定宽度的文本:
$ subject="this is the subject of my email"
$ emlist="list_of_email_addresses"
$ mailfile=$(mktemp)
$ echo "Subject: ${subject}
MIME-Version: 1.0
Content-Type: text/html
<html><body><pre>" > "${mailfile}"
cat result_new >> "${mailfile}"
echo "</pre></body></html>" >> "${mailfile}"
$ cat ${mailfile} | /usr/sbin/sendmail ${emlist}
$ 'rm' -rf "${mailfile}"
如果您无权访问,sendmail
那么您可能需要对您的邮件(发送)程序进行一些测试,以了解如何发送MIME
编码消息......
推荐阅读
- python - 如何在 Python 中为方程创建等价的 WolframAlpha 符号解?
- c++ - 我对 C++ 中引用传递和返回的误解
- java - 如何使用 SQLITE 递归在 android 中检查至少一次每日事件?
- javascript - 闪烁层 HERE 矢量图
- slider - 创建响应式推荐滑块纯 html css javascript
- c++ - 如何使用 Qt c++ 获取您的公共 IP 地址
- javascript - 收集所有小标题做一个总结
- python - 错误构建 docker 映像“执行程序运行失败 [/bin/sh -c apt-get -y update]”
- mysql - 将旧值与新值连接起来
- python - 循环遍历数据框