如何从终端机发送电子邮件?

我知道在Linux/MacOS中有方法从终端发送电子邮件,但我似乎找不到关于如何做到这一点的适当文档。

基本上,我需要它为我的bash脚本,通知我每次有一个文件的变化。

387556 次浏览

进入终端,输入man mail寻求帮助。

你需要设置SMTP:

http://hints.macworld.com/article.php?story=20081217161612647

参见:

http://www.mactricksandtips.com/2008/09/send-mail-over-your-network.html

例如:

mail -s "hello" "example@example.com" <<EOF
hello
world
EOF

这将发送一封电子邮件到example@example.com,主题为hello和消息

你好

世界

echo "this is the body" | mail -s "this is the subject" "to@address"

如果你只需要一个主题行(就像在一个警告消息中一样),简单地做:

mailx -s "This is all she wrote" < /dev/null "myself@myaddress"

在MAC操作系统或Linux操作系统的终端上输入这段代码

mail -s (subject) (receiversEmailAddress)  <<< "how are you?"

举个例子

mail -s "hi" abc@example.com <<< "how are you?"<br>

如果您想在Linux上附加一个文件

echo 'mail content' | mailx -s 'email subject' -a attachment.txt username@stackoverflow.com

可能最简单的方法是使用curl,不需要安装任何额外的包,它可以直接在请求中配置。

以下是使用gmail smtp服务器的示例:

curl --url 'smtps://smtp.gmail.com:465' --ssl-reqd \
--mail-from 'from-email@gmail.com' \
--mail-rcpt 'to-email@gmail.com' \
--user 'from-email@gmail.com:YourPassword' \
-T <(echo -e 'From: from-email@gmail.com\nTo: to-email@gmail.com\nSubject: Curl Test\n\nHello')

对于SMTP主机和Gmail,我喜欢使用Swaks -> https://easyengine.io/tutorials/mail/swaks-smtp-test-tool/

在Mac上:

  1. brew install swaks
  2. swaks --to user@example.com --server smtp.example.com

我认为斯威克斯是最好的。这里有一个更复杂的例子,在端口25上使用TLS加密:

swaks --from john.smith@mydomain.com \
--h-From: '"John Smith" <john.smith@mydomain.com>' \
--h-Subject: 'Subject of message' \
--auth LOGIN --auth-user mylogin --auth-pass mypass \
--to someone@otherdomain.com \
--server smtp.example.com --port 25 -tls \
--add-header 'Content-Type: text/plain; charset="utf-8"'