使用 ssmtp,有没有办法将文件仅包含为正文?
我想发送如下内容,以便我可以通过电子邮件向自己发送一些内容:
$ ssmtp [email protected]
To: me
From: me
Subject: A File
< fileName
Ctrl + D
我已尝试过此操作,但只有“<fileName”会通过电子邮件发送,而不是文件。
我不想打开一个文件并在前面添加收件人:、发件人:、主题:,然后在文件到达后将其从文件中删除。
我知道我能做的就是:
ssmtp [email protected] <fileName
Ctrl + D
但这使得我的电子邮件客户端中的“主题”、“收件人”和“发件人”字段为空白。
谢谢你!
答案1
{
echo To: [email protected]
echo From: [email protected]
echo Subject: A file
echo
find /dir/to/folder/ -type f -size +1M -name "fileName"
} | ssmtp [email protected]
答案2
Rinzwind,谢谢你的启发。以下是我想到的。我将其放入我的 .bash_aliases 文件中:
alias email='{
echo To: Kevin;
echo From: Kevin;
echo Subject: Subject;
echo;
cat FILE;
} | ssmtp myEmailAddress'
要运行它我输入:
$ email
(Then I press Ctrl + Alt + E)
调出命令但不执行它。然后我编辑 FILE 或我想要的任何其他内容,然后按 Enter。
当总是发送给我自己时,它也可以只添加文件名提示:
alias email='{
echo To: Kevin;
echo From: Kevin;
echo Subject: Subject;
echo;
read -p "Enter filename: " fileName;
cat $fileName;
} | ssmtp myEmailAddress'
在这种情况下,我不会按 Ctrl + Alt + E。我只需按 Enter,然后输入文件名并再次按 Enter。
当然,如果我同时使用两者,我会对其中一个使用不同的别名,但是第一个更通用,所以我使用它。
乐趣!