在CentOS上配置Sendmail服务,可以按照以下步骤进行:
1、安装Sendmail:
在CentOS下,sendmail一般默认是随操作系统一起安装的,如果安装系统时没有安装sendmail服务,手动安装sendmail也很简单:
```Shell
# yum install y sendmail sendmailcf
```
2、配置Sendmail的SMTP认证(不需要认证的可忽略此步):
首先确认saslauthd服务是否安装或启动。
```shell
# yum install y saslauthd
# service saslauthd start
```
配置Sendmail的SMTP认证:
```shell
# vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNAL DIGESTMD5 CRAMMD5 LOGIN PLAIN')dnl
dnl define(confAUTH_MECHANISMS',
EXTERNAL GSSAPI DIGESTMD5 CRAMMD5 LOGIN PLAIN')dnl
```
设置Sendmail服务的网络访问权限:
```shell
# vi /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
```
生成Sendmail配置文件:
```shell
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# 重启Sendmail才能使配置文件生效
systemctl restart sendmail
```
3、配置Sendmail邮件域名:
修改sendmail的配置文件和添加域名MX记录。
添加域名到localhostnames文件:
```shell
# vi /etc/mail/localhostnames
添加 sunchis.com
```
修改submit.cf文件:
```shell
# vi /etc/mail/submit.cf
找到行 #Dj$w.Foo.COM,修改为 Djsunchis.com
```
添加域名MX记录:
```shell
# nslookup > set q=mx > sunchis.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Nonauthoritative answer:
sunchis.com mail exchanger = 10 mail.sunchis.com.
Authoritative answers can be found from:
> OK,已经正确解析到邮件服务器所对应的域名。
```
4、解决Relaying denied问题:
出现550 5.7.1 <xxx@163.com>... Relaying denied. IP name lookup failed [192.168.1.133]异常时,原因是把sendmail当做邮件中转站,需要将客户端的IP地址加入到access配置文件中。
```shell
# vi /etc/mail/access
添加 Connect:192.168.1.133 RELAY
重新生成访问权限的数据库:
# cd /etc/mail/
makemap hash access.db < access
```
相关问答FAQs
1、为什么Sendmail发送的邮件会被认定为垃圾邮件?
Sendmail在不做任何设定的情况下,发出的邮件的邮箱源地址形如userid@localhost.localdomain,这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收,建议配置合法的邮件域名和MX记录。
2、如何在CentOS上通过命令行发送电子邮件?
在CentOS上,可以通过mailx命令或sendmail命令来给因特网发送电子邮件,使用echo命令和管道符可以将邮件内容发送给指定收件人:
```shell
echo "Hello World" | mail s "Test" saintchild@qq.com
```
还可以通过编辑/etc/mail.rc文件来配置基于SMTP的邮件发送,例如使用QQ邮箱:
```shell
vi /etc/mail.rc
添加以下内容:
set from=123456@qq.com
set smtp=smtp.qq.com
set smtpauthuser=123456
set smtpauthpassword=runoob
set smtpauth=login
```
通过以下命令发送邮件:
```shell
echo "Hello World" | mail s "Test" saintchild@qq.com
```