Ubuntu postfix+dovecot+mysql

端口

  • 25 (SMTP)
  • 110 (POP3,禁用,只允许加密POP3连接)
  • 143 (IMAP,禁用,只允许加密IMAP连接)
  • 465 (SMTPS)
  • 587 (SMTP STARTTLS)
  • 993 (IMAPS)
  • 995 (POP3S)

修改本机名和添加解析

假设邮箱域名为demo.com,本台服务器域名A解析为mx.demo.com

修改/etc/hostname

mx

修改/etc/hosts

127.0.0.1 mx.example.com mx localhost

重启服务器

开始安装

参考具体配置https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql/

git clone https://github.com/LeoBest2/ubuntu16-mail.git
cd ubuntu16-mail
python mail.py
# python3 mail.py

本配置不同处

# 对于发件人为本域用户,强制必须通过sasl加密认证,
# /etc/postfix/main.cf
smtpd_sender_restrictions =
# 如果通过了sasl认证,则接受邮件到下一个判别规则 smtpd_recipient_restrictions =
        permit_sasl_authenticated,
# 第一条不符合的情况下(说明用户发送的邮件是直接通过25端口没经过SASL认证),检查/etc/postfix/access规则
# 该文件内容为来自demo.com的都拒绝掉
        check_sender_access hash:/etc/postfix/access,
# 拒绝掉已经登陆的,但是发件人和登陆身份不一致的邮件
        reject_sender_login_mismatch,

# /etc/postfix/access
demo.com    REJECT

配置mysql密码,稍后提示输入

这里写图片描述

配置postfix域名

这里写图片描述

安装完毕重启

netstat -atnp 查看各服务启动正常

tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1383/master
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1197/dovecot
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      1197/dovecot
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1191/mysqld
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1383/master
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      1383/master

foxmail配置

这里写图片描述

这里写图片描述

添加邮件地址

INSERT INTO `mailserver`.`virtual_users`
  (`domain_id`, `password` , `email`)
VALUES
  ('1', ENCRYPT('newpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))) , 'email3@demo.com');

大致工作原理

http://www.postfix.org/OVERVIEW.html

书籍postfix权威指南

这里写图片描述

Postfix 接受邮件

  • smtpd从网络接受
  • qmqpd(Quick Mail Queuing Protocol)从网络接受
  • 本地提交

postfix 投递邮件

  • smtp 转发到其他服务器
  • lmtp 递交给MDA(如dovecot)
  • local, virtual, pipe(不太了解)

postfix 接受/转发控制

smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
smtpd_end_of_data_restrictions =
.......

postfix, dovecot联系

# postfix 通过dovecot认证发送用户
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
# 对应dovecot 10-master.conf
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
# postfix投递出邮件通过lmtp协议交由dovecot存放
virtual_transport = lmtp:unix:private/dovecot-lmtp
# 对应dovecot 10-master.conf
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }

postfix与mysql联系

# 查询虚拟域名,用户,别名
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-virtual-email2email.cf

dovecot与mysql联系

# 认证用户
# /etc/dovecot/dovecot-sql.conf.ext
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

其他问题

日志文件/var/log/mail.log

删除用户邮箱

rm -rf `doveadm user -f home email1@demo.com`

设置域名解析

配置webmail

反垃圾邮件,病毒扫描

确保25端口没有被屏蔽

以上配置功能不够完善,完整企业用,推荐iredmail

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值