为Postfix增加验证模块

2024-01-04 07:08
文章标签 模块 验证 增加 postfix

本文主要是介绍为Postfix增加验证模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.创建数据库和表:

create database postfix;

create table users(id int(11) NOT NULL  primary key AUTO_INCREMENT,username varchar(30) not null,password varchar(30) not null);

create user postfix@localhost identified by '*';

grant all privileges on postfix.* to postfix@localhost identified by '*';

2.Cyrus SASL的配置文件smtpd.conf 如下:

pwcheck_method: auxprop
auxprop_plugin: sql
mech_list: PLAIN LOGIN
log_level: 3
allow_plaintext: true
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user:postfix
sql_passwd:*
sql_database:postfix
sql_select: SELECT password FROM users WHERE username='%u';

参考自:http://www.postfix.org/SASL_README.html#auxprop_sql

3.Postfix的配置文件main.cf中加入对Cyrus SASL的支持,如下:

broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining, reject_unauth_destination, permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner = Welcome to our $myhostname ESMTP, Warning:Versionnot Available!


4.在create.php中加入以下内容:

最开始加入以下变量定义:

$mysql_server_name='localhost';
$mysql_username='postfix';
$mysql_password='*';
$mysql_database='postfix';


在表示用户创建成功的if($userid) 后边加入以下语句:

                                $user=$params['username'];
                                $pwd=$params['password'];
                                $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
                                if (!$conn) {
                                                error_log("mysql connected error!");
                                }
                                mysql_select_db($mysql_database,$conn);                          
                                $sql="insert into users (username,password) values ('$user','$pwd')";
                                if (!mysql_query($sql,$conn))
                                {
                                        error_log('Error: ' . mysql_error());
                                }

                                mysql_close($conn);


5.在edit.php中加入以下内容:

最开始加入以下变量定义:

$mysql_server_name='localhost';
$mysql_username='postfix';
$mysql_password='*';
$mysql_database='postfix';


在表示用户编辑成功的if($result) 后边加入以下语句:

                        if($params['password']!=''){
                                $user=$params['username'];
                                $pwd=$params['password'];
                                $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
                                if (!$conn)
                                {
                                     error_log("mysql connected error!");
                                }
                                mysql_select_db($mysql_database,$conn);
                                $sql="update users set password='$pwd' where username='$user'";
                                if (!mysql_query($sql,$conn))
                                {
                                     error_log('Error: ' . mysql_error());
                                }
                                mysql_close($conn);
                        }

这篇关于为Postfix增加验证模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/568530

相关文章

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo