ChatGPT解决这个技术问题 Extra ChatGPT

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

我知道有一些方法可以在 Linux/MacOS 中从终端发送电子邮件,但我似乎无法找到有关如何执行此操作的适当文档。

基本上,我的 bash 脚本需要它,每次文件发生更改时都会通知我。

这里可能应该注意的是,一些主机和 ISP “关闭”了您发送电子邮件的能力。我认为这是试图阻止人们通过他们发送垃圾邮件和网络钓鱼
@JimJeffries 哪个?我正在使用 Amazon EC2 Web 服务器。

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

请注意,所有这些解决方案都假定您在本地安装了 MTA
@Miquel 好点。在 Ubuntu 中,您可以通过 sudo apt-get install mailutils 获得先决条件。
@James,它不适用于我的 MAC(((你能帮帮我吗?
分步教程:rianjs.net/2013/08/…
奇怪的。尽管我所做的唯一更改是更改地址,但这给了我一个“SyntaxError:无效语法”消息。
C
Community

进入终端并输入 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 和消息

你好世界


我刚试过,它对我有用,但出于好奇,我有两个问题。1。 <<是什么意思,网上我看过一些带有'<'或'<<的例子。 ' 它是干什么用的?以及为什么您在邮件末尾和结尾处给出了文件结尾?
“<
A
Aliaksandr Sushkevich

可能最简单的方法是为此使用 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')

这是一个非常好的选择。您可以为您的 Google 帐户生成一个应用专用密码,这只是从您自己的帐户发送电子邮件。很酷!
很好的答案,最后别忘了打开不太安全的应用程序来工作myaccount.google.com/lesssecureapps
@aliaksandr 应该将最后一点添加到他的答案中。默认情况下,此选项(允许访问安全性较低的应用程序)被禁用并且不明显。至少如果您使用 gmail 帐户作为发件人电子邮件。
非常好。 Curl 是另一把很棒的瑞士军刀,比如 netcat :)
您将如何使用此方法附加文件?
J
JRFerguson

如果您只需要一个主题行(如在警报消息中),只需执行以下操作:

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

您可能需要安装 mailutils。它可以通过包管理器安装(例如 apt install mailutils
M
Miae Kim

如果要在 Linux 上附加文件

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

它为我的附件提供了一条 invalid header 消息。正确的选项是大写的 -A
@Stephane 根据 patrick-haugh 的说法, -a 是附件开关。 -A 用于帐户命令。请参阅手册页:linux.die.net/man/1/mailx
A
Alois Mahdal

在您的 mac os 或 linux os 的终端中输入此代码

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

举个例子试试这个

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

T
Tum

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

在 Mac 上:

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


A
Andrzey

我认为swaks是最好的。这里有更复杂的示例,在端口 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"'