虽然只是在整GITLAB过程中的一个小插曲,却意外的难搞,

花了我很多时间,网络上的各种教程与排错众说纷纭,看似简单的功能变得异常复杂。

邮件发送功能, 即MTA做为许多系统的必备,最常用的有sendmail与postfix两种。

我使用的是Centos7 minimal版,postfix是与系统一起安装进来的。

鉴于想更全面一些了解邮件发送软件,就从鼎鼎大名的sendmail开始入手捣鼓。

Sendmail

<=========================================

一.  安装sendmail

yum  -y  install sendmail  sendmail-cf

二.  安装MTA功能测试用软件

yum -y install  mailx   php

三.  切换系统的邮件发送接口

alternatives --config mta

画面显示:

There are 2 programs which provide 'mta'.

Selection    Command
         -----------------------------------------------
         + 1           /usr/sbin/sendmail.postfix
         *  2           /usr/sbin/sendmail.sendmail

Enter to keep the current selection[+], or type selection number: 2

输入2后回车即把MTA功能切换到sendmail上,+号会显示在sendmail的行头。

四.   配置sendmail

vi /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

把Addr的值从127.0.0.1修改为0.0.0.0,不限制使用MTA的IP。

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

生成正式的配置文件。

五.  重启并测试功能

reboot -f

重启完成后确认MTA程序已经切换到sendmail

ps aux | grep sendmail

root       1003  0.0  0.2  88688  2280 ?        Ss   10:40   0:00 sendmail: accepting connections
         smmsp      1018  0.0  0.1  84120  1912 ?        Ss   10:40   0:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
         root       1141  0.0  0.0 112660   968 pts/1    R+   10:51   0:00 grep --color=auto sendmail

sendmail的相关进程已经启动

ps aux | grep postfix

root       1161  0.0  0.0 112660   968 pts/1    R+   11:04   0:00 grep --color=auto postfix

postfix的相关进程都没有开启

用PHP函数发送邮件

php -a

在PHP的交互界面下输入以下函数

mail('test@sohu.com', "Test email content", "sendmail title", null, "-f testname@sendmail.com");

* 使用PHP接口做测试的好处是可以随意指定发送方的邮件地址,即mail函数的最后一个参数。

即使系统的hostname未设置也可以正常发送出邮件。

六.  使用linux的mail命令发送邮件

mail命令就没有使用自定义的邮件发送地址,而是使用HOSTNAME。

安装系统时由于没有对hostname做特别设置,HOSTNAME的值是默认的 localhost.localdomain

这样的邮件域名会被大多数邮箱如163,QQ拒收。

查看邮件发送log会发现以下错误

cat /var/log/maillog

dsn=4.1.8, stat=Deferred: 450 4.1.8 <root@localhost.localdomain>: Sender address rejected: Domain not found

修改HOSTNAME

vi  /etc/hosts

在最后加上一行

192.168.2.108  intest.com

这里的IP地址是我跑sendmail虚拟机的IP,需根据实际情况设置

*  其实这个文件hosts只是用来设置本地路由表,但填上本机IP时,系统在启动初始化中查到本机IP在hosts中,

就会用hosts文件中对应的域名来设置HOSTNAME。

重新启动

reboot -f

重启后发现本地的DNS配置文件etc/resolv.conf 已经被自动更新。

内容变成  nameserver 192.168.2.1

执行mail命令发送邮件

echo "test mail content"|mail -s "Mail title" test@sohu.com

==========================================>

Postfix

<=========================================

一.  切换系统的邮件发送接口

alternatives --config mta

* Postfix是Centos7系统默认自带。 也可以用命令 yum list installed | grep postfix 确认

选择postfix所在行的编号后回车

二.  重启并测试功能

reboot -f

重启后查看进程看到postfix相关的进程已经启动

ps aux | grep postfix

root       1093  0.0  0.2  89544  2172 ?        Ss   08:55   0:00 /usr/libexec/postfix/master -w
         postfix    1094  0.0  0.4  89648  4016 ?        S    08:55   0:00 pickup -l -t unix -u
         postfix    1095  0.0  0.4  89716  4044 ?        S    08:55   0:00 qmgr -l -t unix -u
         postfix    1237  0.0  0.4  89796  4072 ?        S    09:08   0:00 cleanup -z -t unix -u
         postfix    1238  0.0  0.4  89652  4024 ?        S    09:08   0:00 trivial-rewrite -n rewrite -t unix -u
         postfix    1239  0.0  0.4  89856  4272 ?        S    09:08   0:00 smtp -t unix -u
         root       1274  0.0  0.0 112660   972 pts/1    R+   09:09   0:00 grep --color=auto postfix

系统的hostname已经在sendmail配置的第六步中完成了配置,这里就直接使用PHP与mail命令

两种方法做测试。

php -a

mail('test@sohu.com', "Test email No1", "postfix mail", null, "-f test@ccfst.com");
      * php的mail函数可以随意指定发送地址

echo "test mail"|mail -s "postfix mail title" test@sohu.com

==========================================>

在Centos7下捣鼓邮件发送软件sendmail与postfix相关推荐

  1. 邮件发送软件-推广软件

    邮件发送软件 支持一个账号同时对多个邮箱发送 支持普通邮箱文本编辑模式 可以插入链接.图片.设置文本样式等 下载地址: 点击打开链接 下载解压后就可以使用!

  2. windows下的免费邮件服务器软件hMailServer

    公司购买了企业邮局给员工提供邮件服务,这样收发外部邮件都没有问题,但有个非常不好的地方,绝大多数邮件都是在内部互相之间转发的 ,结果就导致一个问题,不管这个邮件是不是发给内部的, 邮件都得到外部邮件服 ...

  3. Linux下架构安全邮件服务器之Sendmail

    简介 一  .E-mail  概述 Internet最基本的服务,也是最重要的服务之一,就是电子邮件 服务.据统计Internet上百分之三十以上的业务量是电子邮件,仅 次于WWW服务.与传统的邮政信 ...

  4. 特殊时期下捣鼓树莓派4

    2019年期末考试的前3天终于还是忍不住买了一个树莓派4B --------      入手之后我做了以下几件事: 1.首当其冲的第一件事当然是组装外壳了: (作为一名合格的搬运工,当然是在关键的地方 ...

  5. 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法

    以下是对发 Hi. This is the PowerMail SMTP Server 1.0 at 72mail.cn . I'm afraid I wasn't able to deliver y ...

  6. 邮件服务器过滤,Winmail 邮件服务器软件

    目前由于垃圾邮件的泛滥,绝大多数邮箱每天都会收到大量的垃圾邮件,深受垃圾邮件骚扰.如何有效的防止垃圾邮件已经成了摆在当前邮件系统面前的最为严峻的问题.下面就 winmail 如何来防止垃圾邮件作几点归 ...

  7. smtp实现qq邮件发送

    文本邮件的发送 #实现对邮件发送 import smtplib #email实现对邮件构建 from email.mime.text import MIMEText from email.header ...

  8. imail PHP,NT下基于邮件服务软件(IMAIL)的邮件发送程序–(本地版)-PHP教程,邮件处理...

    有很多朋友为了php的mail函数而苦恼,其实关键就是它的smtp服务的问题.现在常用的163.sina等大都不支持匿名发送邮件,就是说即使你把php.ini中的smtp设为smtp.163.net/ ...

  9. [RHEL] RHEL7.0 下 Postfix + Dovecot 实现邮件发送

    RHEL7.0 下 Postfix + Dovecot 实现邮件发送 一.前言 大家都对邮件服务(mail service)很感兴趣嘛.我在自己 博客站 预言了自己会实战一次,访问量一天到十几(毕竟平 ...

最新文章

  1. php普通索引和唯一索引,mysql下普通索引和唯一索引的效率对比
  2. 窗口不小心拉到任务栏下面,窗口无法拖回桌面的解决办法
  3. notify和wait
  4. VueX的store的简单使用心结
  5. struts.xml 属性介绍
  6. DOCKER windows 7 详细安装教程
  7. Docker启动一个Centos镜像
  8. 像孩童一样欣喜的看着自己的成长
  9. 引导界面滑动导航 + 大于等于1页时无限轮播 + 各种切换动画轮播效果
  10. mysql日志监控 zabbix_zabbix日常监控项mysql(七)
  11. 写题10分钟,写题解8小时,一道头条面试题,真心难。
  12. 机器学习笔记(十一):优化梯度公式 | 凌云时刻
  13. html 的header标签和head标签
  14. RecyclerView侧滑删除按钮
  15. Diffusion Models和GANs结合
  16. sim卡与imei号和手机号码之间的关系
  17. 学习OpenCV:hu矩
  18. 如何将图片转化为base64编码格式,在css中显示
  19. QPSK解调过程中的抽样判决
  20. 初学者之路——————水声通信总结

热门文章

  1. python批量图片文字识别_利用Python批量进行图片文字识别
  2. 为什么巴西买家更喜欢用Boleto付款?
  3. 图片识别——感知哈希算法
  4. [ 网络协议篇 ] IGP 详解之 OSPF 详解(三)--- OSPF协议报文 链路状态通告 详解
  5. HTML5 游戏开发快速提升
  6. Pixelmator Pro for Mac(图像编辑软件)
  7. 用跨进程子类化技术实现对其它进程消息的拦载
  8. 数字化经济时代的企业信息化管理转型——数据化 信息化 数字化 智慧管理的概念及它们之间的关系
  9. Laravel项目+Google验证器
  10. Verilog学习之求两个数的差值设计