邮件服务器之间采用SMTP协议进行通信,如果我们的云服务器想要接受邮件,需要打开25这个端口,并允许访问25端口。
邮件服务使用的特殊的DNS,需要进行配置。这里涉及到了两次映射,为了方便叙述,假设我的邮箱名字是: abc@example.com 。第一次映射通过添加MX记录类型,将邮箱@后面的主机映射到域名上,如下图所示,添加一个MX的记录类型。
第二次映射将上面的域名映射到我们云主机上的IP上,看过之前文章的朋友应该知道如何配置。
我们将使用postfix作为邮件服务器,因为它的特殊设定,需要先检查云主机的hostname,将hostname设置为邮件服务器的主机名。
安装postfix,执行下面的命令,弹窗会让你选择configuration和你的mail name
安装完成之后,检查一下服务是否启动,如果没有启动,可以执行postfix start。
邮件服务器搭建完毕,学习过计算机网络的同学应该知道,smtp只是邮件服务器之间的传输协议,读取邮件还需要pop3或者imap协议。所以如果还要读取邮件,还需要安装其他软件。需要说明的是:如果你的Ubuntu有user1的用户,那么邮件服务器就有 user1@example.com 的账户。
接下来我们用qq邮箱给刚搭好的邮件服务器发送测试邮件,当在云服务器上执行mail的
时候,提示收到了新邮件,选择1就显示邮件的内容。
细心的小伙伴可能已经发现了,邮件的内容是base64编码后的,并不能直接读取,这个时候执行以下decode,选择消息,就能进行解码啦
postfix还能发送邮件,但是前提是云服务器25端口出的流量是开启的,可以在云服务器上自己进行测试,看端口25是不是通的。对于postfix发送邮件感兴趣的可以自行搜索资料哦~
有了自建的邮件服务器,再也不用担心要多个手机号啦
《Linux设置定时任务》 一文中,我们学习了使用crontab设置定时任务的方法,并用它来获取ganglia的运行状态。这样还不够,我们想要在ganglia的运行状态出现问题时通知我们,这样,我们就不用每天自己查看日志了。
本文主要参考 Ubuntu mail命令发送邮件 和 如何通过Shell脚本实现发送邮件通知功能? 。
1、安装mailutils
sudo apt-get install mailutils
2、General type of mail configuration选择Internet Site。
3、System mail name输入mail.voidking.com。
命令格式:
mail [OPTION...] [address...]
常用到的选项,一个是s,代表主题;一个是A,代表附件。其他的需要时查看help。
目标:给邮箱 voidking@qq.com 发送邮件,主题为“Hello VoidKing”,内容为“Welcome to mail world!”
mail -s 'Hello VoidKing' voidking@qq.com
提示Cc,这里不需要抄送,就直接回车。然后输入邮件内容“Welcome to mail world!”,回车,ctrl+D,发送邮件。
但是,等待了几分钟,并没有收到邮件,垃圾箱也没有。
mail ,查看email的发送状态为Undelivered Mail Returned,原来没有投递出去。
查看邮件系统日志: tail -n 50 /var/spool/mail/test ,提示host mx3.qq.com[183.57.48.35] said: 550 Mail content denied。看来qq邮箱的垃圾邮件防御机制做的不错,那就换个163邮箱,没想到依然失败。
那就换一台服务器!发送给 voidking@qq.com ,成功!很尴尬。。。
除了上面的方式发送邮件,我们还可以使用:
mail -s 'Hello VoidKing' voidking@qq.com <<<'Welcome to mail world!'
或者使用:
echo 'Welcome to mail world!' | mail -s "Hello VoidKing" voidking@qq.com
1、从文本读入内容发送邮件
mail -s 'Error report' voidking@qq.com </tmp/log/ganglia/error-20180524.log
2、发送附件
mail -s 'Error report' voidking@qq.com -A /tmp/log/ganglia/ganglia-20180524.log </tmp/log/ganglia/error-20180524.log
3、指定发件人
echo 'Welcome to mail world!' | mail -s "Hello VoidKing" voidking@qq.com -aFrom:haojin@qq.com
失败了,收不到邮件,不知道什么原因,留个坑吧。
目标:每天获取一次ganglia的状态日志,然后通过checkganglia.sh脚本进行审阅。审阅完毕,发送审阅结果到管理员的邮箱。
修改checkganglia.sh脚本为:
至此,大功告成! 《Linux设置定时任务》 配合 《Linux设置邮件提醒》 ,简直完美!两篇文章完成了一个小系统:定时生成ganglia日志,定时审阅ganglia日志,并且把审阅结果通过邮件发送给管理员。
Linux命令大全——LMNOPQ
如何在Ubuntu环境下搭建邮件服务器(一)
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) //stmp banned(用于telnet操作修改)biff = no
append_dot_mydomain = no
#delay_warning_time = 4h
readme_directory = no
mail_spool_directory = /var/mail
home_mailbox = .Mail///本机每登录linux用户邮件文件夹位置
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
#两项自启用tls发邮件选项(要邮箱支持)
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = (邮件服务器主机名需要/etc/hostname修改应服务域名再填写)
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = (填写应服务器域名)
#mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 //允许连接主机设置
mailbox_size_limit = 0 //限制邮件附件设置
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)