@dooy
2022-11-01T07:34:50.000000Z
字数 5452
阅读 497
安装
本文以架设 test@zahei.com 邮箱为例,环境为CentOS 6.x。 CentOS7.6 测试过
特别注意:docker就没成功过,花了2天时间
nslookupset q=mxzahei.com#得到信息zahei.com MX preference = 20, mail exchanger = mail.zahei.comzahei.com MX preference = 10, mail exchanger = mail2.zahei.com#注意mx 一定要域名,如果是ip 会导致苹果的 appleid 收不到
配置hostname 为 zahei.com
#在服务端涉及到的文件跟命令vim /etc/hostsvim /etc/sysconfig/networkhostname zahei.com/etc/init.d/sendmail restart#在客户端telnet 117.79.157.247 25 #后能显示说明ok220 zahei.com ESMTP Sendmail *********** #这里出现zahei.com
useradd allpasswd 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.0DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl#把认证打开,把前面的dnl去掉就好TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`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=novim /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.confdisable_plaintext_auth = novi /etc/dovecot/conf.d/10-ssl.confssl = noservice 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 25ehlo zahei.com250- Hello [192.168.1.11], pleased to meet you250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN250-DELIVERBY250 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 REJECTFrom:net REJECTFrom:cn REJECTFrom:edu REJECTFrom:gov REJECTFrom:com REJECTFrom:qq.com OKFrom:apple.com OKFrom:zahei.com OK## 注意由于不知道 控制权限的通配符 只能穷举 com org net cn gov edumakemap -v hash /etc/mail/access.db < /etc/mail/access/etc/init.d/sendmail restart
mkdir /home/用户名/mail/.imap/INBOXhttp://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.rpmwget http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -Uvh remi-release-6*.rpm epel-release-6*.rpmyum install opendkim
##生成keyexport domain=zahei.commkdir /etc/opendkim/keys/$domaincd /etc/opendkim/keys/$domainopendkim-genkey -d $domain -s defaultchown -R opendkim:opendkim /etc/opendkim/keys/$domainecho "default._domainkey.$domain $domain:default:/etc/opendkim/keys/$domain/default.private" >> /etc/opendkim/KeyTableecho "*@$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+RrWTkA5gZmla46g2Cas9KkFZHXxdM4zXJ4FeHh7FSud5Pm/vk2pyC1LIYeS3SpTjEKvXTavXmQvAdmZxriaWNIgNcfHwTKehKCOGjbWm+3JE0MfNp0NCBR/fowmoftVbKbKuZ0=
往 check-auth@verifier.port25.com 发送验证
Summary of Results==========================================================SPF check: temperrorDomainKeys check: neutralDKIM check: passSender-ID check: passSpamAssassin check: ham
http://www.51itstudy.com/62459.html
http://www.opendkim.org/opendkim-README