安装邮件服务器之四

2023-11-12

20、配置cyrus-sasl

为了支持maildrop,先加入vmail用户:

# pw adduser vmail -u 1003 -s /sbin/nologin -d /dev/null

你需要创建/usr/local/lib/sasl2/smtpd.conf:

# ee /usr/local/lib/sasl2/smtpd.conf

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: plain login

sql_engine: mysql
sql_hostnames: localhost
sql_user: postfix
sql_passwd: postfix
sql_database: postfix
sql_select: select clear from tmail_users where email='%u@%r' and smtpaccess='Y'

21、配置postfix

# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail

如果/usr/sbin/sendmail存在就删掉再做上链接,如果升级内核和升级系统后要重新做这一步

# echo 'postfix:root' >> /etc/aliases
# newaliases
# chown postfix:postfix /etc/opiekeys

编辑/usr/local/etc/postfix/main.cf:

# ee /usr/local/etc/postfix/main.cf

在文件最后加入以下内容,其中各个参数根据需要自己填写:

# new add
myhostname = mail.test.com  
smtp_helo_name = $myhostname

local_transport = maildrop
mailbox_transport = maildrop

smtpd_error_sleep_time = 0
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
default_process_limit = 100
#alias_maps       = hash:/usr/local/etc/postfix/aliases
#Alias_database         = hash:/usr/local/etc/postfix/aliases
mydestination     =   mysql:/usr/local/etc/postfix/mysql-mydest.cf
virtual_transport_maps     = mysql:/usr/local/etc/postfix/mysql-transport.cf
virtual_alias_maps       = mysql:/usr/local/etc/postfix/mysql-virtual.cf
#virtual_alias_maps   = mysql:/usr/local/etc/postfix/mysql-alias.cf
recipient_bcc_maps = mysql:/usr/local/etc/postfix/mysql-autobbc-in.cf
sender_bcc_maps = mysql:/usr/local/etc/postfix/mysql-autobbc-out.cf
local_recipient_maps = $alias_maps $virtual_mailbox_maps $virtual_maps

virtual_mailbox_base = /mail
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql-virtual-maps.cf
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql-virtual-quota.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
virtual_uid_maps     = mysql:/usr/local/etc/postfix/mysql-virtual-uid.cf
virtual_gid_maps     = mysql:/usr/local/etc/postfix/mysql-virtual-gid.cf
broken_sasl_auth_clients   = yes
smtpd_sasl_auth_enable     = yes
smtpd_sasl_security_options = noanonymous
smtpd_client_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    check_client_access mysql:/usr/local/etc/postfix/mysql-access.cf,
    permit_auth_destination,
    reject
smtpd_sender_restrictions =
    reject_unknown_sender_domain,
    reject_non_fqdn_sender,
    check_sender_access mysql:/usr/local/etc/postfix/mysql-access.cf,
    permit
smtpd_recipient_restrictions =
    permit_mynetworks,
    check_client_access mysql:/usr/local/etc/postfix/mysql-access.cf,
    permit_sasl_authenticated,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    reject_unauth_pipelining,
    reject_unauth_destination,
    reject_rbl_client cblless.anti-spam.org.cn,
    permit
default_destination_recipient_limit = 1
local_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
message_size_limit = 41943040
smtpd_recipient_limit = 10
bounce_queue_lifetime = 12h
maximal_queue_lifetime = 24h

smtpd_delay_reject = yes
smtpd_helo_required = yes
strict_rfc821_envelopes = yes

编辑/etc/local/etc/postfix/mysql-access.cf:

# ee /usr/local/etc/postfix/mysql-access.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
query = select access from tmail_access where source = '%s'

编辑/usr/local/etc/postfix/mysql-alias.cf:

# ee /usr/local/etc/postfix/mysql-alias.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_virtual
query = select alias from tmail_users where email = '%s'

编辑/usr/local/etc/postfix/mysql-autobbc-in.cf:

# ee /usr/local/etc/postfix/mysql-autobbc-in.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
query = select autobbc from tmail_autobbc where email = '%s' AND come='1'

编辑/usr/local/etc/postfix/mysql-autobbc-out.cf:

# ee /usr/local/etc/postfix/mysql-autobbc-out.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
query = select autobbc from tmail_autobbc where email = '%s' AND out='1'

编辑/usr/local/etc/postfix/mysql-mydest.cf:

# ee /usr/local/etc/postfix/mysql-mydest.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_domaininfo
query = select domain from tmail_domaininfo where domain = '%s' AND yesno = '1'

编辑/usr/local/etc/postfix/mysql-transport.cf:

# ee /usr/local/etc/postfix/mysql-transport.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_domaininfo
query = select transport from tmail_domaininfo where domain = '%s'

编辑/usr/local/etc/postfix/mysql-virtual-gid.cf:

# ee /usr/local/etc/postfix/mysql-virtual-gid.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_users
query = select gid from tmail_users where email = '%s'

编辑/usr/local/etc/postfix/mysql-virtual-uid.cf:

# ee /usr/local/etc/postfix/mysql-virtual-uid.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_users
query = select uid from tmail_users where email = '%s'

编辑/usr/local/etc/postfix/mysql-virtual-maps.cf:

# ee /usr/local/etc/postfix/mysql-virtual-maps.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_users
query = select maildir from tmail_users where email = '%s'

编辑/usr/local/etc/postfix/mysql-virtual-quota.cf:

# ee /usr/local/etc/postfix/mysql-virtual-quota.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_users
query = select quota from tmail_users where email = '%s'

编辑/usr/local/etc/postfix/mysql-virtual.cf:

# ee /usr/local/etc/postfix/mysql-virtual.cf

添加:

hosts = localhost
user = postfix
password = postfix
dbname = postfix
table = tmail_virtual
query = select destination from tmail_virtual where email = '%s'

22、配置Courier-imap

方法:打开文件,利用查找功能修改

修改Courier相关设置,/usr/local/etc/courier-imap/imapd:

IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA"

修改/usr/local/etc/courier-imap/pop3d:

POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"

修改/usr/local/etc/authlib/authmysqlrc:

MYSQL_SERVER         localhost
MYSQL_USERNAME       postfix
MYSQL_PASSWORD       postfix
MYSQL_PORT         0
MYSQL_OPT           0
MYSQL_DATABASE       postfix
MYSQL_USER_TABLE     tmail_users
MYSQL_CRYPT_PWFIELD   crypt
#MYSQL_CLEAR_PWFIELD   clear
MYSQL_UID_FIELD       uid
MYSQL_GID_FIELD       gid
MYSQL_LOGIN_FIELD     email
MYSQL_HOME_FIELD     homedir
MYSQL_NAME_FIELD     realname
MYSQL_MAILDIR_FIELD   maildir
MYSQL_QUOTA_FIELD     quota
MYSQL_AUXOPTIONS_FIELD CONCAT("disableimap=",disableimap,",disablepop3=",disablepop3,",disablewebmail=",disablewebmail,",sharedgroup=",sharedgroup)
MYSQL_WHERE_CLAUSE     access='y'

带下划线的是一行,注意不要分成两行,键和值之间用tab键来跳格

编辑/usr/local/etc/authlib/authdaemonrc:

authmodulelist="authmysql"
authmodulelistorig="authmysql"
version="authdaemond.mysql"
daemons=5
authdaemonvar=/var/run/authdaemond
subsystem=mail
DEBUG_LOGIN=0
DEFAULTOPTIONS="wbnodsn=1"

23、安装Tmail管理工具webadmin

更改httpd.conf中的Group www、User www修改为:Group vmail、User vmail

然后把此邮件存放根目录(这里是/mail)的所有权改成vmail,否则后面不能正常添加域名(或域名添加后不能创建用户而且也不能删除此域名)这样做:

# chown -R vmail:vmail /mail
# chmod -R 705 /mail

更改php.ini中的output_buffering = Off为output_buffering = On

上传webadmin到网站目录后修改config/config.inc.php中的:

define(MAILDIR,"/mail");        //邮件存放根目录
define(MISC, ".misc");
define(MODE,0700);
$PageSize = 15;                    //用户列表和域名列表每一页显示多少行
$host = "localhost";                //数据库主机名
$user = "postfix";                    //数据库用户名
$dbname = "postfix";                    //数据库名称
$password = "postfix";                //数据库密码

可查看一下main.cf中的邮件存放根目录设在哪里,这里也设置同样的目录

设置好后,管理员帐号登陆你的webadmin(要注意的是,那个验证码中的字母一律小写),添加一个域名,比如test.com,添加一个用户,比如test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装邮件服务器之四 的相关文章

  • HikariCP连接池

    什么是HikariCP HikariCP是由日本程序员开源的一个数据库连接池组件 代码非常轻量 并且速度非常的快 根据官方提供的数据 在i7 开启32个线程32个连接的情况下 进行随机数据库读写操作 HikariCP的速度是现在常用的C3P
  • "[WinError 10061] 由于目标计算机积极拒绝,无法连接"错误解决办法

    爬虫的时候会经常出现 WinError 10061 由于目标计算机积极拒绝 无法连接 错误这种情况 有可能是LAN口设置不正确 我是在爬取全国天气情况的时候出现的这种错误 后面调了以后可以了 1 控制面板 网络和 Internet Inte
  • 蓝桥杯小白必看 —— Python

    蓝桥杯小白必看 Python 文章目录 蓝桥杯小白必看 Python 一 Python比赛规则 二 Python3 8 6的IDLE环境 1 官网下载地址 2 让编译器显示行数 3 设置自动保存 4 设置页面字体大小 5 快捷键的使用 三
  • 操作系统王道考研复习——第二章(进程管理) 上

    操作系统王道考研复习 第二章 进程管理 上 2 进程管理 2 1 程序执行 2 1 1 程序顺序执行的特征 2 1 2 程序并行执行的特征 2 2 进程与线程 2 2 1 进程的概念和特征 1 程序和进程的区别 2 进程的组成 PCB 程序
  • java删除指定路径下的全部内容

    1 使用过程当中有时会用到清空文件夹的操作 首先传入指定文件夹地址 利用递归的方式清空该文件夹下的全部文件 以及子文件夹 public static void deleteFile File file 判断文件不为null或文件目录存在 i
  • 《Unity Shader入门精要》自学笔记(七)第九章 更复杂的光照 ——光照衰减

    帧调试器FrameDebugger 又是一个好玩的小玩具好用的小工具呢 可以通过Window Analysis Frame Debugger打开 然后点击左上角的Enable 就可以查看了 点击1打开或关闭Frame Debugger 滑动
  • springboot实现ApplicationContextAware接口、使用ThreadLocal获得当前上下文请求的HttpServletRequest

    前端请求的参数可以用requestparam requestbody获得 也可以用HttpServletRequest来获得参数 这里讲用HttpServletRequest来获取前端参数的办法 举例 GetMapping index do
  • 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套 给定程序中 函数fun的功能是 对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序 ss所指字符串数组中共有M个字符串 且串长
  • 从python入门到机器学习的心得贴(持续更新ing

    仅代表个人看法 大学的编程是C语言入的门 专业上的使用也是C语言为主 非码农 但个人觉得 作为21世纪的新新人类 python的工程的各个领域都有融合的价值 于是抽空就把python入了门 一 入门之路 开始也不知道该从哪儿开始 之后看到一
  • 行列式与矩阵的区别

    1 行列式的本质是线性变换的放大率 而矩阵的本质就是个数表 2 行列式行数 列数 矩阵不一定 行数列数都等于n的叫n阶方阵 二者的表示方式亦有区别 3 行列式与矩阵的运算明显不同 1 相等 只有两个同型的矩阵才有可能相等 并且要求对应元素都
  • PyTorch深度学习——Anaconda和PyTorch安装

    一 Anaconda安装 前言 安装anaconda后主要有一下3点好处 1 包含环境管理器conda 2 大量安装基于python的工具包 3 可以创建使用和管理不同的python版本 附上百度百科的解释 下载步骤 1 官网下载anaco
  • Linux部署Nginx并配置https

    1 下载nginx安装包 wget http nginx org download nginx 1 21 6 tar gz 2 解压压缩包 tar zvxf nginx 1 21 6 tar gz 3 初始化configure 配置conf
  • C语言——猜数字小游戏

    实现一个猜数字的小游戏 gt 首先要用的c语言的随机生成数 在C语言中 我们一般使用
  • import-module的注意事项与NDK_MODULE_PATH的配置

    具体的语句多参考其他正确的Android mk import module的功能 导入外部模块的 mk文件 和 include基本一样 概念上的区别是include导入的是由我们自己写的 mk 而import module导入的是外部库 外
  • C语言中设置文字颜色

    记得刚接触C语言时 上机运行代码输出结果每次都是黑色的控制台白色的文字 就像下面这样 视觉体验极差 十分的不美观 感觉很low 这就引发了我的思考 输出结果必须是黑框白字吗 显然不是这样的 我们可以自己设置文字和文本颜色 那么该如何设置呢
  • VS CODE 离线插件下载

    VS CODE 离线插件下载 老方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 进行地址替换 四 下载 五 在windows环境下安装插件 新方法 一 进入VSCODE 插件下载官网 二 搜索需要下载的插件 三 下载
  • 【原創】checkstyle配置文件说明(checkstyle 3.5)

    属性 说明 basedir 代码所在的位置 AbstractClassName format 定义抽象类的命名规则 PackageName format 定义包名的命名规则 TypeName format 定义类和接口的命名规则 token
  • 警惕!MySQL成数据勒索新目标

    据最新报道显示 继MongoDB和Elasticsearch之后 MySQL成为下个数据勒索目标 从2月12日凌晨开始 已有成百上千个开放在公网的MySQL数据库被劫持 删除了数据库中的存储数据 攻击者留下勒索信息 要求支付比特币以赎回数据
  • Kibana常用命令

    Kibana常用命令 查看集群的健康情况 GET cat health v 查看节点的情况 GET cat nodes v 查询各个索引状态 GET cat indices v 创建索引 PUT movie index 查看某一个索引的分片

随机推荐

  • 9月17日星期二 恒指/美原油/美黄金 走势分析

    财经早餐 2019年09月17日星期二 重点关注的财经数据与事件 09 30 中国70个大中城市住宅销售价格月报 09 30 澳洲联储公布9月货币政策会议纪要 17 00 德国及欧元区9月ZEW经济景气指数 21 15 美国8月工业产出月率
  • idea删除模块后重新创建显示该模块已经被注册

    idea删除模块后重新创建显示该模块已经被注册 原因 注册信息没有删除干净 解决方案 找到gradle xml modules xml workspace xml文件 进一步删除模块信息
  • odoo 打开form 视图 默认为编辑状态

    为了编辑方便 客户会经常要求 odoo 打开form 视图 默认为编辑状态 或者根据某些条件 为编辑状态 下面介绍两种方式进行 1 在form 初始化加载时进行拦截 设置属性打开编辑状态 FormView include 满足条件 form
  • springboot的yaml写法之map、list和map<String,List>

    分两步 设置yaml 注入参数 1 设置yaml 文件名 application yml runcommand firstMapList key11 k1 k2 k3 key22 k1 k2 k3 list lk1 lk2 lk3 maps
  • java 编译时注解框架 lombok-ex

    lombok ex lombok ex 是一款类似于 lombok 的编译时注解框架 编译时注 拥有运行时注解的便利性 和无任何损失的性能 主要补充一些 lombok 没有实现 且自己会用到的常见工具 创作目的 补充 lombok 缺失的注
  • nginx输出php错误日志,Nginx错误日志(error_log)配置及信息详解

    Nginx状态信息 status 配置及信息详解 nginx与php fpm一样内建了一个状态页 对于想了解nginx的状态以及监控nginx非常有帮助 为了后续的zabbix监控 我们需要先了解一下nginx的状态页 Nginx状态信息
  • 【Matplotlib】【Python】如何使用matplotlib颜色映射

    颜色映射 colormap 是一系列颜色 它们从起始颜色渐变到结束颜色 在可视化中 颜色映射用于突出数据的规律 例如 你可能用较浅的颜色来显示较小的值 并使用较深的颜色来显示较大的值 模块pyplot内置了一组颜色映射 要使用这些颜色映射
  • 学习UpdatePanel控件-

    原文可以显示图片 转载 http blog csdn net ILOVEMSDN archive 2007 11 11 1879343 aspx UpdatePanel控件的使用 2008 10 07 05 46 P M ScriptMan
  • JVM 二. 类加载相关

    目录 一 类的加载 二 类的加载器 类加载器的双亲委派机制 一 类的加载 什么是类的加载 我们编写java代码存储为 java结尾的文件 经过编译器编译 将java代码转换为虚拟机指令生成 class结尾的文件 当需要某个类时 虚拟机加载指
  • ZCMU--5155: 小蒜数(C语言)

    题目描述 在所有不大于 n 的正整数中 蒜头君将不是 9 的倍数的所有奇数剔除掉 将是 7 的倍数的所有偶数剔除掉 剩下的数从小到大首尾相接拼起来 组成了一个 小蒜数 请问这个数一共有多少位 输入 输入为整数 n 1 n 1000 测试点编
  • swiper中使用iframe导致无法滑动的3个解决方案

    看到这个标题 很多同学都会疑惑 为什么swiper中要放iframe呢 事实上 当我遇到这个需求前 我也没想到会有这样的骚操作 swiper中嵌入网站 每次滑动切换一个网站 想想听炫酷的 可做起来就不酷了 当你开开心心的把iframe放到每
  • 音频格式RAW和PCM区别和联系

    定义 RAW 在一些外国品牌的播放机中名为 BitSream 我们通常称为 源码 意义是把光盘上的音频格式不加处理地 原汁原味 地从同轴和光纤输出 这就要求用户的功放具备这种音频格式的解码功能 PCM 名为 脉冲调制编码 它的作用是当前的将
  • 多益校招面经--软件开发岗

    多益网络2021校招面经 软件开发岗 笔试通过 专业面试凉凉 第一次面试 太紧张了 很多东西提起来脑子一片空白 现在结束后想了一下都能想明白 以下是面经 1 个人介绍 2 项目介绍 3 开发语言的了解程度 个人是C 4 C 和JAVA的区别
  • 通过接口传递经纬度,并计算距离

    微信小程序调用接口 存储经纬度 PostMapping update location public R updateLocation RequestBody UserQuery userQuery if userService getLo
  • MDK5__配色方案的修改

    一 必要的知识 与MDK主题相关的文件有两个 在X Keil v5 UV4路径下 global propglobal prop def其中global prop def是系统默认的主题配置 如果修改过字体等 系统会生成一个global pr
  • Qt元对象系统及应用(一)

    目录 1 元对象系统 2 元对象与属性系统 2 1 动态属性 3 元对象与信号槽 3 1 信号槽应用场景 3 2 信号槽的连接 3 3 信号槽要点总结 1 元对象系统 元对象系统 Meta Object System 是Qt框架中一个非常重
  • python学习目录,从入门到上手

    这是我学习python的一套流程 根据书本学习 从入门到上手 整理不易 一 Python入门 环境搭建 变量 数据类型 二 Python运算符 条件结构 循环结构 三 Python函数 四 做一次综合练习 做一个控制台的员工管理 需求 员工
  • WMS仓库管理系统与ERP仓储系统的区别与联系

    现代企业越来越重视物流及仓储管理 然而提到WMS仓库管理系统与ERP仓储系统 许多企业管理者依旧是一脸茫然的表情 无法清晰的区别分辨 其实这两款软件在功能上有相似的地方 下面就由沈阳达策带您一看究竟 实际上 ERP仓储系统和WMS仓库管理系
  • STM32_HAL库编程_串口+DMA接收数据异常问题记录

    1 开发环境概述 Keil 5 27 STM32CUBEMX STM32F103RCT6 2 问题现象 在利用RCT6做主机通信 C8T6做从机通信时 拔插从机电路板 有概率出现主机通信故障无法接收到从机数据 或者从机通信故障无法接收到主机
  • 安装邮件服务器之四

    20 配置cyrus sasl 为了支持maildrop 先加入vmail用户 pw adduser vmail u 1003 s sbin nologin d dev null 你需要创建 usr local lib sasl2 smtp