CentOS下mail命令发送邮件
概念解释
邮件用户代理(MUA,Mail User Agent)
邮件传送代理(MTA,Mail Transport Agent)
邮件分发代理(MDA,Mail Deliver Agent)
mail 命令和 mailx 命令即为负责查看、编写邮件和向 MTA 发送邮件的 MUA。mailx是mail的功能加强版。
sendmail 即为负责邮件在网络上传输的 MTA,将邮件从一个 MTA 传送至另一个 MTA 。
本人使用的是 CentOS 6.6,自带了 mail、sendmail 命令。经测试,qq 邮箱可以收到邮件,可能会被拦截放入垃圾邮件,多尝试几次后,后面几次每次都可以收到了,估计是被防火墙识别为可信。
163 邮箱是直接被拦截,啥都不显示,垃圾邮件也没有。
mail 命令
1.直接使用shell当编辑器
- 1
- 2
- 3
第一行是输入的命令,-s表示邮件的主题,后面的admin@mzone.cc则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,我们可以输入任何文字,比如上面的两行。当邮件正文输入完成后,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。 收到的邮件发信人格式为:root@hjcentos.localdomain
2.使用管道进行邮件发送 echo “hello i m xx” | mail -s “Dreamhj Test Mail” xxxxxxxx@qq.com
3.使用文件进行邮件发送 mail -s “Hello from mzone.cc by file” xxxxxxxx@qq.com < mail.txt
因为 mail 程序本身就是调用sendmail来进行邮件发送的, sendmail 会使用本地服务器的 hostname 进行发件人填写,一般为 root@xxxx.localdomain 格式,但是主流的邮件服务提供商会拦截这种邮件。
解决办法:我们可以配置 mail 命令使用外部 SMTP 服务,下面用 163 邮箱为例: vim /etc/mail.rc 在末尾添加如下配置:
- 1
- 2
- 3
- 4
- 5
mail -s “Dreamhj” xxxxxxxx@qq.com 去收件箱查看,发现邮件 发件人变为:xxx@163.com
发送附件,直接加 -a 参数即可 mail -s “Dreamhj” -a /root/test.txt xxxx@qq.com < test.txt
邮件过滤
邮件服务提供商可能会通过 SPF、DKIM、DMARC、逆向地址解析 等技术来过滤垃圾邮件。
-
SPF(Sender Policy Framework) 发件人策略框架。SPF 记录是服务器的一个 DNS 记录。原理说明:邮件服务器收到一封邮件,ip 为 112.112.112.112,域名为 test@test.com。邮件服务器为了确认该邮件不是伪造的,就会去查询 test.com 的 SPF 记录,如果 该域名下的 SPF 记录 允许 IP为 112.112.112.112 的主机发送邮件,则认为这封邮件是合法的的,如果不合法则退信。
-
DKIM(DomainKeys Identified Mail )域名密钥识别邮件标准。DKIM 的基本工作原理同样是基于传统的密钥认证方式,他会产生两组钥匙,公钥(public key)和私钥(private key),公钥将会存放在 DNS 中,而私钥会存放在寄信服务器中。数字签名会自动产生,并依附在邮件头中,发送到寄信者的服务器里。公钥则放在DNS服务器上,供自动获得。收信的服务器,将会收到夹带在邮件头中的签名和在DNS上自己获取公钥,然后进行比对,比较寄信者的域名是否合法,如果不合法,则判定为垃圾邮件。
-
DMARC(Domain-based Message Authentication, Reporting and Conformance)以域名为基础的邮件认证、报告和一致性。DMARC 的主要用途就是设置“策略”。这个策略包含接收到来自这个域未通过身份验证的邮件时应执行什么操作。选项是不执行操作(“无”),将邮件放在“隔离区”中或者“拒绝”邮件。只有使用“拒绝”策略,域才能受到完全保护。 DMARC 的第二个功能是让 ISP 发送有关某个域身份验证成功或失败的报告。这些报告将发送至“rua”(汇总报告)和“ruf”(取证报告)中定义的地址中。
-
反向域名解析系统(Reverse DNS):。A 记录由域名解析得到地址,PTR(Point Record) 记录由地址解析得到域名
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
centos 6.9二进制安装mariadb 5.5.57
1,注意先查看一下有没有mysql,如果有先卸载,卸载的时候发现有依赖,所以要忽略依赖 rpm -qa mysql* rpm -e mysql-server –nodeps rpm -e mysql –nodeps rpm -e mysql-libs –nodeps 这个结果就是只删除了mysql,跟他有依赖关系的其它软件是不会删除的,但是这些软件因为系统里没有了mysql也会不能运行,这是所谓的没有删除干净。 如yum -y remove httpd这种方式是把与httpd有依赖关系的所有软件一并删除。比如php,mod_ssl等等。这就干净了 2, getent passwd mysql 发现已经有这个用户了,就不用再创建了 mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash 注意/var/lib/mysql是将来存放数据库的那个文件夹,/bin/bash是mysql的登录shell rz mariadb-5.5.57-linux-x86_64.tar.gz (自行下载包) 3,tar xvf mariadb-5.5.57-lin...
- 下一篇
多个centos.iso文件合并成一个iso文件
我下载了centos6.5的光盘镜像文件,但是下载下来的有两个文件:CentOS-6.5-x86_64-bin-DVD1.iso和CentOS-6.5-x86_64-bin-DVD2.iso,这安装的时候选哪个呢,不好搞。所以我准备将这两个文件合并为一个iso文件,那么就可以用这个合并后的文件进行安装了。 操作如下: 安装UltraISO软件。 1. 用 UltraISO 分别打开除第一张外另外的ISO文件(我这里也就是CentOS-6.5-x86_64-bin-DVD2.iso文件了),把里面的全部内容拉出来,放到一个临时目录下。 2. 修改 .discinfo 文件,这个文件每个ISO文件中都有一个,其中的第四行标注的是CD的盘号,比如我这第二张的这个文件中第四行就是2。将它改为1。 用 UltraISO 打开第一张CD,点“操作”->“添加文件”,把刚才临时目录下的全部文件都添加进去,添加到时候选择替换原来的重名文件; 保存,大功告成! 参考http://blog.sina.com.cn/s/blog_416adf890100gcmg.html
相关文章
文章评论
共有0条评论来说两句吧...