想用命令行发送邮件,发现有msmtp和mutt的组合。
msmtp是发邮件的,mutt负责操作怎样更方便发送。
sudo apt-get install msmtp mutt
查看gmail smtp服务器情况
-
msmtp --host smtp.gmail.com --serverinfo
-
SMTP server at smtp.gmail.com (pa-in-f109.1e100.net [74.125.25.109]), port 25:
-
mx.google.com ESMTP ss2sm145322334pab.8 - gsmtp
-
Capabilities:
-
SIZE 35882577:
-
Maximum message size is 35882577 bytes = 34.22 MiB
-
STARTTLS:
-
Support for TLS encryption via the STARTTLS command
-
This server might advertise more or other capabilities when TLS is active.
Gmail发送邮件需要使用TLS/SSL 支持,所以安装GnuTLS();gmail需要制定证书,所以安装ca-certificates。
sudo apt-get install gnutls-bin ca-certificates
配置~/.msmtprc
-
defaults
-
tls on
-
tls_starttls on
-
tls_trust_file /etc/ssl/certs/ca-certificates.crt
-
-
-
account default
-
host smtp.gmail.com
-
port 587
-
auth on
-
from username@gmail.com
-
user username@gmail.com
-
password your_password
-
logfile /tmp/mmlog
注意trick:
1. Gmail smtp server的端口不是25,而是465 或者 587;
2. logfile 确保写权限;
3. 保存.msmtprc 文件后修改访问权限 chmod 0600 .msmtprc ,否则会报错“
must have no more than user read/write permissions”;
4. 邮件密码是明文,所以注意安全管理;如果Gmail账号使用了Application specific password ,注意使用新生成的password,而平时登录使用的不管用。
测试发送邮件:
msmtp test@yeah.net
敲入想要发送任何内容,ctrl + d 结束,查看logfile里面发送邮件的内容。
配置~/.muttrc
-
set sendmail="/usr/bin/msmtp"
-
set use_from=yes
-
set realname="clerk"
-
set from=username@gmail.com
-
set envelope_from=yes
尝试用mutt发送一封邮件:
echo "email body from 2014-05-01 clark" | mutt -s "first try title" test@yeah.net
测试邮箱test@yeah.net检查,发现刚才测试发出的两封邮件;去logfile检查,发现发送成功 exitcode=EX_OK。
更多配置可以去官网查看,或者man。
注意:不要大量发送垃圾邮件,或者试图做邮件炸弹,这样不仅非法,而且会被发送或者接受服务器ban。
阅读(3337) | 评论(1) | 转发(3) |