SPSmtpGate 是一个反垃圾邮件网关,支持 Sendmail 8 的 Milter 协议,采用透明 smtp proxy 的模式。Milter 协议由 Sendmail 公司提出,在 Sendmail 和 Postfix 中都有实现。目前开源的 Milter 模块非常丰富,如果搭配的好,这些 milter 可以有效地拦截垃圾邮件。借助于 SPSmtpGate ,SendMail/Postfix 之外的其他 MTA 也可以方便地利用这些 Milter 模块。
http://code.google.com/p/spsmtpgate/
http://spsmtpgate.googlecode.com/files/spsmtpgate-0.1.src.tar.gz
SPSmtpGate 部署在 Internet 和本地 MTA 之间。系统结构如下图所示。
---------------
| |
| Milter |
| |
---------------
/|\
|
|
------------- --------------- -------------
| | | | | |
| Internet | -----> | SPSmtpGate | -----> | Local MTA |
| | | | | |
------------- --------------- -------------
由于采用了透明 proxy 的模式,对于原有的系统影响非常小,只需要修改少量的配置。
如果 SPSmtpGate 和 Local MTA 部署在同一台机器,那么修改 Local MTA 的配置,使得它使用 25 之外的端口,比如 2025 端口;然后由 SPSmtpGate 来接管 25 端口,同时修改 SPSmtpGate 的配置文件,把 Local MTA 作为 backend 。
SPSmtpGate 使用的配置文件
[Server] ; spsmtpgate 的一些控制参数
MaxConnections = 1024 ; 最大并发连接数
SocketTimeout = 600 ; 和 internet 上其他主机通信的超时时间
MaxThreads = 128 ; 最多使用的线程数
MaxReqQueueSize = 128 ; 最大的队列长度
[Backend] ; 后端 MTA 的相关信息
ConnectTimeout = 5 ; 连接超时时间
ConnectRetry = 3 ; 连接重试次数
SocketTimeout = 10 ; socket 通信超时时间
ServerCount = 1 ; 有多少台后端 MTA 可用
Server0 = 127.0.0.1:2025 10 ; 第一台可用的后端 MTA
[MailFilter] ; milter 模块的相关信息
Filter0 = "S=inet:1111@127.0.0.1, T=C:5s;S:10s;R:10s;E:1m"
通常需要修改 [Backend] 和 [MailFilter] 这两个配置节。
1)首先修改 Server0 这里的内容,指向具体的 MTA 主机和端口
2)其次修改 MailFilter 的内容,指向具体的 Milter 模块。Milter 的配置内容采用 Sendmail 的格式。
S=inet:1111@127.0.0.1, F=T, T=C:5s;S:10s;R:10s;E:1m
S= 表示 Milter 的连接端口,可以使用 local:/var/run/f1.sock 或者 inet:1111@127.0.0.1 的方式。
F= 表示应用以下哪个标志:
R 如果过滤器不可用,那么拒绝连接。
T 如果过滤器不可用,那么使连接临时失效。
通过为 T= 指定一个值,可以覆盖缺省超时值。等式 T= 使用以下字段:
C 连接到过滤器的超时值
S 将信息从 MTA 发送到过滤器的超时值。
R 从过滤器读取应答的超时值。
E 向过滤器发送消息结束通知与等待最终确认之间的总超时值。
如以上示例中所示,每个超时之间的分隔符是分号(;),每个等式之间的分隔符是逗号(,)。
缺省的超时值如下:
T=C:0m;S:10s;R:10s;E:5m
其中 s 代表秒,m 代表分钟。
分享到:
相关推荐
3. **反垃圾邮件机制**:SMTP网关需要具备反垃圾邮件功能,例如SPF(Sender Policy Framework)、DKIM(DomainKeys Identified Mail)、DMARC(Domain-based Message Authentication, Reporting & Conformance)等...
Jupyter-Notebook
Jupyter-Notebook
高效甘特图模板下载-精心整理.zip
lstm Summary Framework: z = U>x, x u Uz Criteria for choosing U: • PCA: maximize projected variance • CCA: maximize projected correlation • FDA: maximize projected intraclass variance
OpenGL调试工具,适合图形开发者,包括视频开发,播放器开始以及游戏开发者。
全国行政区划shp最新图.zip
全国研究生招生与在校数据+国家线-最新.zip
Jupyter-Notebook
直播电商交流平台 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
《林黛玉进贾府》课本剧剧本
2000-2020年沪深A股上市公司融资约束程度SA指数-最新数据发布.zip
PPT模版资料,PPT模版资料
CPA注会考试最新教材资料-最新发布.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
内容概要:本文提供了一个完整的职工管理系统的C++源代码。通过面向对象的编程方法,实现了包括创建新职工、查询、增加、修改、删除、排序、统计以及存储和恢复职工数据在内的多个基本操作功能。该系统支持不同的用户角色(如管理员与老板),并通过菜单驱动方式让用户方便地进行相关操作。此外,还包括了错误检测机制,确保操作过程中的异常得到及时处理。 适合人群:有一定C++语言基础,特别是面向对象编程经验的程序员;企业管理人员和技术开发人员。 使用场景及目标:适用于中小型企业内部的人力资源管理部门或IT部门,用于维护员工基本信息数据库,提高工作效率。通过本项目的学习可以加深对链表、类和对象的理解。 阅读建议:建议先熟悉C++的基本语法和面向对象概念,再深入学习代码的具体实现细节。对于关键函数,比如exchange、creatilist等,应当重点关注并动手实践以加强理解。
Jupyter-Notebook
考研公共课历年真题集-最新发布.zip
Huawei-HKUST Joint Workshop on Theory for Future Wireless 15-16 September 2022 华为-香港科技大学未来无线理论联合研讨会 Speaker:Jingwen Tong
演出人员与观众疫情信息管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B