热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Postfix配置smtp服务器发信的问题

目的:搭建单独的SMTP外发服务器,从正常的邮件服务器中独立出来要求:关闭Openrelay,没有经过身份验证不能使用smtp服务器发送邮件(本域也免谈)状态:以前工作进展程度,SMTP+身份验证正常工作,没有身份验证不能发送邮件给域内或域外用户。(通过把$m
目的: 搭建单独的SMTP外发服务器,从正常的邮件服务器中独立出来
  要求:关闭Openrelay,没有经过身份验证不能使用smtp服务器发送邮件(本域也免谈)
  状态: 以前工作进展程度,SMTP+身份验证正常工作,没有身份验证不能发送邮件给域内或域外用户。(通过把$mydestination $relay_domains设置成空实现的),存在问题,当用户发送给本域用户时,无法立即发现用户是否实际存在。需要等待一段时间后才能收到smtp的退信。
  
  改进要求: 如果用户发邮件给本域不存在用户,系统立即提示用户不存在,且不通过验证不能发送邮件给任何人,包括域内用户。

  改进方法:
  
  增加relay_recipient_maps,但是这个工作需要依赖于relay_domains,对于邮件系统的默认配置,如果存在 relay_domains,那么系统将会自动接受relay_domains的邮件,无论用户是否提供身份验证信息。
  
  修改方法:
  因为我的系统使用了mysql,FC4默认的postfix还不支持postfix,所以要重新编译,在互联网上逛,发现这个编译方法很方便,延续了我系统使用rpm包的习惯:
  rpm -ivh postfix-2.1.6-1.src.rpm
  
  cd /usr/src/redhat/SOURCES
  
  bash
  
  export POSTFIX_MYSQL_REDHAT=1
  export POSTFIX_SASL=2
  export POSTFIX_TLS=1
  
  sh make-postfix.spec
  
  exit
  
  cd /usr/src/redhat/SPECS
  
  rpmbuild -ba postfix.spec
  
  cd /usr/src/redhat/RPMS/i386
  这样就搞定了,呵呵
  
  在/etc/postfix/main.cf中增加:

"6.9837335398916">==============

"6.9837335398916">relay_domains =
mysql:/etc/postfix/mysql-relay.cf
  relay_recipient_maps = mysql:/etc/postfix/mysql-user.cf,
mysql:/etc/postfix/mysql-virtual.cf

==============

  上面两行关于mysql的配置,根据系统的不同,略有不同, mysql-relay.cf主要是查找 那些域名是属于 域内的(发往自己邮件服务器的)
  mysql-user.cf mysql-virtual.cf 这两个文件是user表,其实就是 自己邮件服务器上的所有邮件地址列表。

  修改:

smtpd_recipient_restrictiOns= permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject
  
最后增加一个 reject,我找了好久,最后发现增加一个 reject 就实现我的要求了,具体说明参见postfix的说明。
  
  PS: 用过postfix后,就会不知不觉的放弃其他MTA,至少我是这样的。

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 从U ... [详细]
  • crontab 自动执行定时任务时,命令无法执行的解决方案
    为什么80%的码农都做不了架构师?最近在工作中需要使用crontab执行定时任务,处理memcacheq消息队列里的数据,但是发现在 ... [详细]
author-avatar
张晓熊他爸_166
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有