测试环境选为Ubuntu 14.04.X 和 CemtOS6.X下。
1. Ubuntu下打开shell命令终端依次输入如下命令: sudo apt-get install heirloom-mailx sudo apt-get install postfix 2. CentOS下打开shell命令终端依次输入如下命令: yum install mailx.x86_64 yum install postfix.x86_64
打开Linux shell命令终端,依次输入并执行如下命令:
mkdir .certs certutil -N -d .certs echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /$PATH$/.certs/gmail.crt certutil -A -n "Google Internet Authority" -t "C,," -d /$PATH$/.certs -i set /$PATH$/.certs/gmail.crt (以上$PATH$替换为实际路径)
Ubuntu下修改 /etc/nail.rc,CentOS下修改 /etc/mail.rc,文件结尾回车后增加如下内容:
set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件) set ssl-verify=ignore set nss-config-dir=/$PATH$/.certs ($PATH$替换为实际路径) set from=用户名@astercc.com set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtp://smtp.gmail.com:587) set smtp-auth-user=用户名@astercc.com set smtp-auth-password=密码 set smtp-auth=login
如果需要多个邮箱的账号并存在配置文件中,在发送时提供选择还有另外一种写法如下:
account gmail {
set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件)
set ssl-verify=ignore
set nss-config-dir=/$PATH$/.certs ($PATH$为路径)
set from=用户名@astercc.com
set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtps://smtp.gmail.com:587)
set smtp-auth-user=用户名@astercc.com
set smtp-auth-password=密码
set smtp-auth=login
}
这种写法需要在mail/mailx命令后增加-A参数引用。
| 参数 | 说明 |
|---|---|
| set smtp-use-starttls | gmail使用TLS/STARTTLS |
| ssl-verify | 使用SSL |
| nss-config-dir | 本地SSL认证证书和密钥数据路径 |
| from | 发送的邮件地址 |
| smtp | 发生的外部SMTP服务器的地址 |
| smtp-auth-user | 外部SMTP服务器认证的用户名 |
| smtp-auth-password | 外部SMTP服务器认证的用户密码 |
| smtp-auth | 邮件认证的方式 |
确定配置参数,后保存文件后,就可以使用mail/mailx命令发送邮件了。
命令行使用如下命令发送邮件
mail/mailx (-vcabSA) -s "Test mail" address回车后命令行输入邮件内容,内容输入完毕回车后ctrl+d发出邮件内容,多个收件人之间用逗号分隔,你也可以通过管道(|)和重定向符(<)获取要发送邮件内容。
-s 指定邮件主题。 -v 列出讯息,例如送信的地点、状态等等。 -c 抄送邮件副本的用户列表。 -a 文件指定的文件附加到邮件。 -b 发送密件副本列出,多个名单应该是一个逗号分隔的名称列表。 -S 设置内部选项的变量(如上面配置文件增加的内容可由 -S set smtp-auth-user=用户名@astercc.com指定)。 -A 多个SMTP账号时引用账号名(即配置文件里account后的名字 )。