在 CentOS 上,可以通过 mailx 命令 或 sendmail 命令来给因特网发送电子邮件。

关于前者的文章比较多,关于后者的文章比较少。

这里记录了我在 CentOS 7 上安装和配置 sendmail 服务器的过程。

1. 安装 Sendmail

yum install sendmail sendmail-cf m4

2. 配置 Sendmail 服务器

  • access — 允许/拒绝 其他系统使用 Sendmail 发送电邮
  • domaintable — 给 Sendmail 的域名映射
  • local-host-names — 用于给主机定义别名
  • mailertable — 定义指令,给特定域名重写路由
  • virtusertable — 指定具体域名形式的别名,允许多个虚拟的别名

2.1 在/etc/mail/sendmail.mc注释掉以下这行,允许从任何地方接受电邮。

在开头加上 dnl,即可在 sendmail.mc 注释掉一行。

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

2.2 在sendmail.mc的‘MAILER’选项之上增加这行

FEATURE(relay_hosts_only)dnl

2.3 添加你PC的完全主机名到此文件

hostname >> /etc/mail/relay-domains

3. 重编译 Sendmail 配置

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

重启Sendmail

systemctl restart sendmail
or
service sendmail restart
or
/etc/init.d/sendmail restart

4. 配置基于域名的电子邮件的路由

如上所述,virtusertable用于别名,允许多个虚拟域名宿于一台机器。

  • All emails addressed to @example.com domain delivered to support@mydomain.com
  • All emails addressed to support@mydomain.com will forward to local user jack.
  • All emails addressed to @mydomain.com will forward to domain @otherdomain.com with corresponding usernames.
  • All emails addressed to @otherdomain.com will be rejected my mail server with acknowledging sender with the message
@example.com support@mydomain.com
support@mydomain.com jack
@mydomain.com %1@otherdomain.com
@otherdomain.com error:nouser User unknow

执行以下命令更新 virtusertable.db 文件。

makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

最好重启Sendmail服务。

测试了以下命令,成功发送电邮到我的QQ邮箱(在这之前,mailx -s "test" saintchild@qq.com < mailbody 也邮件发送成功):

cat mailbody | sendmail saintchild@qq.com

参考

怎样在 CentOS/RHEL 7/6 上安装和配置 Sendmail 服务器的更多相关文章

  1. 在CentOS/RHEL 6.5上安装Chromium 谷歌浏览器

    之前Google就说了,由于CentOS/RHEL 6已经是过期的系统,所以不再会有Chrome了. 虽然后来由于引起了社区的抗议,从而改口,不再提CentOS/RHEL 6是过期系统了:但是,目前在 ...

  2. 在CentOS/RHEL 6.4上安装Chromium

    是的,之前Google就说了,由于CentOS/RHEL 6已经是过期的系统,所以不再会有Chrome了.虽然后来由于引起了社区的抗议,从而改口,不再提CentOS/RHEL 6是过期系统了:但是,目 ...

  3. 怎样在CentOS 7.0上安装和配置VNC服务器

    VNC轻松连接远程Linux桌面 http://jingyan.baidu.com/article/6c67b1d6f1bac92786bb1e6d.html 这是一个关于怎样在你的 CentOS 7 ...

  4. CentOS 7.0 上安装和配置 VNC 服务器

    作为一个系统管理员,大多数时间是通过网络管理服务器的.在管理服务器的过程中很少会用到图形界面,多数情况下我们只是用 SSH 来完成我们的管理任务.在这篇文章里,我们将配置 VNC 来提供一个连接我们 ...

  5. 怎样在 CentOS 7.0 上安装和配置 VNC 服务器

    这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC ...

  6. centos 6.5下编译安装、配置高性能服务器Nginx

    1.nginx是什么? Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力 ...

  7. buntu 16.04上安装和配置Samba服务器

    https://www.linuxidc.com/Linux/2017-11/148194.htm

  8. 如何在 CentOS 7 / RHEL 7 终端服务器上安装 KVM

    如何在 CnetOS 7 或 RHEL 7(Red Hat 企业版 Linux)服务器上安装和配置 KVM(基于内核的虚拟机)?如何在 CentOS 7 上设置 KVM 并使用云镜像 / cloud- ...

  9. CentOS 6.5系统上安装SVN服务器端的方法及步骤

    VN其实就是Subversion,分为服务器端和客户端.之前在网上搜了很多方法,都有各种问题,经过自己搜集整理以及实际尝试,总算有个比较靠谱的方法.本文主要介绍CentOS 6.5系统上安装SVN服务 ...

随机推荐

  1. jstl中的foreach标签

    <%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...

  2. Taro 3.5 canary 发布:支持适配 鸿蒙

    一.背景 鸿蒙作为华为自研开发的一款可以实现万物互联的操作系统,一经推出就受到了很大的关注,被国人寄予了厚望.而鸿蒙也没让人失望,今年 Harmony2.0 正式推出供用户进行升级之后,在短短的三个月 ...

  3. 【Windows】github无法访问/hosts文件只能另存为txt

    因为我的github访问不了了,搜索解决方案为修改host文件 https://blog.csdn.net/curry10086/article/details/106800184/ 在hosts文件 ...

  4. Innodb Cluster集群部署配置

    目录 一.简介 二.环境声明 三.部署 安装(均操作) 配置(均操作) 开启group_replication(均操作) 启动group_replication 创建集群(在mysql-1执行) 创建 ...

  5. pipeline 共享库

    目录 一.简介 二.共享库扩展 共享库使用 共享库结构 pipeline模板 一些小问题 三.共享库例子 使用公共变量 使用共享库的src方法 使用共享库的vars方法 四.插件实现pipeline ...

  6. 『与善仁』Appium基础 — 25、APP模拟手势高级操作

    目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...

  7. LuoguP7534 [COCI2016-2017#4] Kartomat 题解

    Content 火车站里头有一个售票机,其键盘可以看作是一个 \(4\times 8\) 的矩阵,其中第一行的前面三个键和最后一行的最后三个键都是 *,剩余的键按照从上到下,从左到右的顺序依次按照 A ...

  8. LuoguB2001 入门测试题目 题解

    Update \(\texttt{2021.7.3}\) 经测试,本题 \(a,b\) 范围在 long long,对代码进行了修改,并修改一些笔误,更新了数据范围. \(\texttt{2021.7 ...

  9. JAVA获取文件byte数组并输出进行展示和文件下载

    /** * 文件下载 */ @GetMapping(value = "/download") public void download(HttpServletResponse re ...

  10. centos7 升级php版本到7.2

    #自带的只有5.4版本 yum provides php [root@localhost etc]# yum provides php Loaded plugins: fastestmirror, l ...