有没有办法使用 ssmtp 将文件包含为正文?

有没有办法使用 ssmtp 将文件包含为正文?

使用 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。

当然,如果我同时使用两者,我会对其中一个使用不同的别名,但是第一个更通用,所以我使用它。

乐趣!

相关内容