mail(mailx)发送邮件

mail (mailx) 指令所发出的邮件未经密码验证, 某些邮件服务器 (如:Gmail) 不接受未经验证的邮件, 因此我们必须加以设定, 让 mailx 透过 smtp auth 发送邮件.

环境:

Fedora 14: mailx-12.5-1

Fedora 9: mailx-8.1.1-48, nail-12.3-4

安裝

Fedora 14: yum install mailx

Fedora 9: yum install mailx nail

基本设置

vi ~/.mailrc

set smtp=smtp://my.smtp.host:25
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret

发送邮件

echo "this is a test" | mail -v -s "test" someone@somewhere.com

多账号设定

mkdir ~/.mozilla_nss_shared_db

在裝有 Firefox 的 Linux 电脑, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert.db 与 key.db 复制到 ~/.mozillanssshared_db

vi ~/.mailrc

account starttls {
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=~/.mozilla_nss_shared_db
set from="myaccount@my.smtp.host(myname)"
set smtp=smtp://my.smtp.host:25
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret
}
account gmail {
set ssl-verify=ignore
set nss-config-dir=~/.mozilla_nss_shared_db
set from="myaccount@gmail.com(myname)"
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret
}

透过 Gmail 发送邮件

echo "this is a test" | mail -v -A gmail -s "test" someone@somewhere.com

注: Fedora 9 使用 nail 指令取代 mail; Fedora 9 不需设置 nss-config-dir