title: linux shell 发送邮件 CreateTime: 2014-05-22 09:58:00 UpdateTime: 2014-05-22 09:58:00 CategoryName: web --- --- title: "linux shell 发送邮件" date: 2014-05-22T09:58:00+08:00 draft: false tags: ["web"] categories: ["web"] author: "springrain" --- 当我们在linux中使用mail命令的时候,系统会默认使用本地sendmail或者postfix发送邮件,如果你没有安装sendmail或者postfix,或者说你觉得配置非常麻烦,而且会带来不必要的错误,我们改怎么办呢? 我们可以使用外部邮箱(163,126,gmail,139等等)为我们发邮件,举个例子就相当于你用你的windows发送邮件一样,你不必装一个邮件服务器. -bash: mail: command not found 显然mailx没有安装,于是: yum -y install mailx 我们通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的.比如,我以我自己的139邮箱为例 修改/etc/mail.rc (/etc/nail.rc) 在文件的末行添加以下5行 ``` set from=test@163.com set smtp=smtp.163.com set smtp-auth-user=test@163.com set smtp-auth-password=test set smtp-auth=login ``` 不用重启,立刻生效 说明: from是发送的邮件地址 smtp是发生的外部smtp服务器的地址 smtp-auth-user是外部smtp服务器认证的用户名 smtp-auth-password是外部smtp服务器认证的用户密码 smtp-auth是邮件认证的方式 配置成功后,就可以使用了 可以发送一封邮件测试一下: mail -s "test" test@163.cn < test.txt 其中-s后面的是邮件标题,test@163.com,test.txt里面是邮件正文 ```shell echo "标题" | mail -s '内容' abc@163.com,abc@163.com ``` ok! 我在我的邮箱中已经收到来自163邮箱的邮件了.