Mac OS X 下用命令行发送邮件

左心房为你撑大大i 提交于 2019-12-06 09:14:19

msmtp 是个 smtp 客户端。如果只是用命令行发送邮件,并不需要能接受邮件,用它正好。用 Sendmail、Postfix 的话,就有些杀鸡用牛刀的感觉,而且它们配置起来真很让人痛苦。

安装 msmtp

$ brew install msmtp # 如果没有 brew,请去 http://brew.sh/ 安装下

配置

~/.mailrc

<!-- lang: shell -->
set sendmail=/usr/local/bin/msmtp

~/.msmtprc

<!-- lang: shell -->
# Use an external SMTP server with insecure authentication.
# (manually choose an insecure authentication method.)
# Note that the password contains blanks.

defaults

####################################################################
# A sample configuration using Gmail
####################################################################

# account name is "gmail".
# You can select this account by using "-a gmail" in your command line.
account gmail
host smtp.gmail.com
tls on
tls_certcheck off
port 587
auth login
from yourname@gmail.com
user yourname
password yourpassword

# If you don't use any "-a" parameter in your command line,
# the default account "gmail" will be used.
account default: gmail

~/.msmtprc 需要设置正确的访问权限

<!-- lang: shell -->
$ chmod 600 ~/.msmtprc

试用

<!-- lang: shell -->
$ echo "Hello world" | mail -s "msmtp test at `date`" yourfriend®@gmail.com

还想说的

上面的 ~/.msmtprc 使用明文存放密码、非加密方式验证,虽方便但不安全。想要更安全,可参看 Dropping sendmail-postfix for msmtp

如果想在 Linux、Windows 上做同样的事情,可参看How to send emails with msmtp on Windows or Linux or Mac OS X

文章还参考了

How to send an email from command line?

MSMPTQuickStart

Archlinux msmtp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!