Linux发送邮件

来源:互联网 发布:淘宝网服务器 编辑:程序博客网 时间:2024/06/14 18:23

介绍:

最近在搞zabbix监控,需要发送邮件当做提醒,就大概研究了一下Linux主机如何向互联网上发送邮件。
Linux常见的发送邮件方法有两种一种是启动本机的邮件服务postfix,另一种是使用网上第三方邮件服务商提供的服务。例如QQ邮箱,或者是网易邮件服务。不过我建议使用网易邮箱(因为今天下午搞了一下午QQ邮箱配置,最后出现各种错误,最重要的是还没搞成功,-_-)

一、邮件发往本机存在的用户

1、开启postfix服务,作为smtp服务的agent端,不管是发往本地的邮件还是发往互联网上的邮件,此服务都要开启。

###开启postfix服务或者是sendmail服务,但是sendmail比较老了,目前主流的是postfix服务。如果没有对应的服务,使用yum安装即可#systemctl start postfix

2、查看postfix状态,保证服务开启

#systemctl status postfix#ss -ntl查看25号端口是否监听

3、如果postfix启动较慢,可以修改/etc/hosts做好本机ip和主机名的映射,假设我的主机名是thinkerwalker,192.168.137.3 thinkerwalker,添加后,邮件的发件人就是root@thinkerwalker了,当然root是Linux中存在的用户。
4、安装mailx软件
此软件提供了发送邮件的命令mailx.

yum -y install mailx

5、执行发邮件命令

echo hello world |mailx -s "test2" root@localhost###发件人是root@thinkerwalker,收件人是root@localhost,我们可以使用mail命令查看收到的邮件。

二、将邮件发往互联网

如果要将邮件发送到互联网,需要使用网络上的第三方邮件服务商,建议使用126或者是163的smtp服务器。这里附上126邮箱的smtp服务说明。
126邮箱POP3/SMTP/IMAP设置

1、开启postfix服务,作为smtp服务的agent端服务要开启

###开启postfix服务或者是sendmail服务,但是sendmail比较老了,目前主流的是postfix服务。如果没有对应的服务,使用yum安装即可#systemctl start postfix

2、安装mailx软件。

yum  install mailx

3、确保自己的邮箱上开启了smtp服务,并且有自己的授权密码,此密码下面要用到。(这里不是邮箱登录密码)

4、此时只需修改/etc/mail.rc(据说若是编译安装的软件,配置文件为/etc/nail.rc)

//使用管理员账号编辑/etc/mail.rc,文件最后面添加如下配置:###指定发件人是谁set from=13253641509@126.comset smtp=smtp.126.comset smtp-auth-user=13253641509@126.com###注意这个秘密不是你登录的邮箱密码,而是smtp服务授权的密码set smtp-auth-password=xxxxset smtp-auth=login

注意:如果这里的密码不是给定的smtp服务的授权密码,则将会报smtp-server: 535 Error: authentication failed的错误。

5、使用mailx命令发送邮件,也可使用mail命令,因为mail是mailx的软链接。

echo "邮件内容"|mailx -s 标题 receive@qq.com或mail -s 标题 receive@163.com < file###receive@qq.com是收件人,这时候,receive@qq.com的用户将收到来自13253641509@126.com的邮件。

6、亲测可用

0 0