@dooy
2022-11-01T07:34:50.000000Z
字数 5452
阅读 394
安装
本文以架设 test@zahei.com 邮箱为例,环境为CentOS 6.x。 CentOS7.6 测试过
特别注意:docker就没成功过,花了2天时间
nslookup
set q=mx
zahei.com
#得到信息
zahei.com MX preference = 20, mail exchanger = mail.zahei.com
zahei.com MX preference = 10, mail exchanger = mail2.zahei.com
#注意mx 一定要域名,如果是ip 会导致苹果的 appleid 收不到
配置hostname 为 zahei.com
#在服务端涉及到的文件跟命令
vim /etc/hosts
vim /etc/sysconfig/network
hostname zahei.com
/etc/init.d/sendmail restart
#在客户端
telnet 117.79.157.247 25 #后能显示说明ok
220 zahei.com ESMTP Sendmail *********** #这里出现zahei.com
useradd all
passwd all #设置一个密码 比如为 passwd-abc
yum -y install sendmail*
yum -y install dovecot*
yum -y install cyrus-sasl*
vim /etc/mail/sendmail.mc
#将原来的ip 127.0.0.1 修改为 0.0.0.0
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
#把认证打开,把前面的dnl去掉就好
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#保存后
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
#添加你的域名
vim /etc/mail/locl=host-names
#添加 zahei.com 如果有多个域名 就每行一个
尔后,你可以配置 /etc/mail/access,这个文件是让你无需要认证就可以随意发邮件 有些不安全(可配可不配)
vim /etc/dovecot/dovecot.conf
# 去掉前面的#号
protocol= imap imaps pop3 pop3s
# 高版本如果
#出现 ERP ERR Plaintext authentication disallowed on non-secure
#添加下面内容
disable_plaintext_auth=no
vim /etc/dovecot/conf.d/10-mail.conf
#找到
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
#修改去掉前面的#号就可以了
mail_location = mbox:~/mail:INBOX=/var/mail/%u
#修改后 保存退出
出现 ERR Plaintext authentication disallowed on non-secure (SSL/TLS)
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no
service dovecot restart
能解决你任意一个邮件都是发送到你指定的邮箱 学名叫 “虚拟域邮件映射”
vim /etc/mail/virtusertable
@zahei.com all
#这样能发送到 test@zahei.com 都会发送到 all@zahei.com 里面
/etc/init.d/sendmail start
/etc/init.d/dovecot start
/etc/init.d/saslauthd start
测试之前得确认 110、25端口是否打开
检查INBOX目录是否存在?如果没有手工下
mkdir /home/all/mail/.imap/INBOX
telnet 你的ip 25
ehlo zahei.com
250- Hello [192.168.1.11], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
#出现 AUTH LOGIN PLAIN 就说明认证成功
详细的测试可以查看SMTP协议
账号: all@zahei.com
密码: passwd-abc
pop3: mail.zahei.com 110
smtp: mail.zahei.com 25
要求只收 qq.com 跟apple.com的邮件 其他全部拒绝
vim /etc/mail/access
#添加下面内容
From:org REJECT
From:net REJECT
From:cn REJECT
From:edu REJECT
From:gov REJECT
From:com REJECT
From:qq.com OK
From:apple.com OK
From:zahei.com OK
## 注意由于不知道 控制权限的通配符 只能穷举 com org net cn gov edu
makemap -v hash /etc/mail/access.db < /etc/mail/access
/etc/init.d/sendmail restart
mkdir /home/用户名/mail/.imap/INBOX
http://wenku.baidu.com/view/06183d01b52acfc789ebc9e4.html
解决列入黑名单问题:
http://bbs.chinaunix.net/thread-3565820-1-1.html
dovecot 配置日志等问题 可结合mysql
http://inosin.iteye.com/blog/1472653
关于 access权限的设置
http://qingwang.blog.51cto.com/505009/909329/
我们这里考虑用 opendkim 也可以使用 amavisd 来做
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum install opendkim
##生成key
export domain=zahei.com
mkdir /etc/opendkim/keys/$domain
cd /etc/opendkim/keys/$domain
opendkim-genkey -d $domain -s default
chown -R opendkim:opendkim /etc/opendkim/keys/$domain
echo "default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain/default.private" >> /etc/opendkim/KeyTable
echo "*@$domain default._domainkey.$domain" >> /etc/opendkim/SigningTable
##生成之后打开/etc/opendkim/keys/domain.com/default.txt,里面就是DKIM key,需要添加到DNS,主机记录为default._domainkey,记录值为括号里面的(去掉引号)
#检验
host -t txt default._domainkey.zahei.com
#显示 default._domainkey.zahei.com descriptive text "v=DKIM1\; k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAvYIDHGsfFtuK/rSOZ2FTfiujbQjd3brq5i9p1DjTVaNj45pP+c0kV7FlRF67//kLJhI+PlWSWW36+dUHMxdXDiqykBY3rVhJVD8JUpVGKbK22ILVIHPnvxV4WBEKdPSw1ZW4MDHp/HWJlFwUiUQa+ujip4BS/jxJP6OsImBbzQIDAQAB"
配置opendkim.conf
vi /etc/opendkim.conf
1. 将Mode 改为 Mode sv
2. 将Domain 改为 Domain zahei.com
3. 将KeyTable变量前面的#去掉,但是KeyFile、Statistics加上#
4. 再把SigningTable /etc/opendkim/SigningTable改成SigningTable refile:/etc/opendkim/SigningTable
5. 检查 host里面有 127.0.0.1 zahei.com ?
#在/etc/mail/sendmail.mc 添加
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl
#保存后编译
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
#保存后重启
/etc/init.d/sendmail restart
/etc/init.d/opendkim start
如果发生 dkim_eoh(): resource unavailable: can't create temporary file at /tmp/dkim.***: Permission denied
错误 应该系统没有设置 setenforce 0
给 qq邮箱发一份邮件看看 投机里面是否还有 DKIM-Signature:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zahei.com;
s=default; t=1470979570;
bh=iyATQ7btGBDoXyz5qhAEwPhoj7jn7SvdtRNJoYYDX+w=;
h=Date:From:To:Subject:From;
b=ucTfO8JuO3+UQlbFAd9yHEXMOwbVaA9fujRm+RrWTkA5gZmla46g2Cas9KkFZHXxd
M4zXJ4FeHh7FSud5Pm/vk2pyC1LIYeS3SpTjEKvXTavXmQvAdmZxriaWNIgNcfHwTK
ehKCOGjbWm+3JE0MfNp0NCBR/fowmoftVbKbKuZ0=
往 check-auth@verifier.port25.com 发送验证
Summary of Results
==========================================================
SPF check: temperror
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
http://www.51itstudy.com/62459.html
http://www.opendkim.org/opendkim-README