对于大量邮件的 SMTP 服务有什么建议?
让我澄清一下,大多数免费的 SMTP 服务(Gmail、Yahoo、Hotmail 等)都对您一天可以发送的邮件数量有限制。
例如,Gmail 每天最多只能发送约 500 封邮件。
因此,对于那些每天发送的消息具有更高限制的服务,必须存在替代方案。你知道一些吗?. 它可以是免费或付费服务。
我刚刚使用 Postfix 在一个相对较少使用的域上设置了一个 SMTP 服务器,并使用SQLGrey启用了灰名单。到目前为止,它似乎工作正常,虽然对来自新发件人的电子邮件延迟有轻微的刺激,但我可以从日志中看到它阻止了许多垃圾邮件。
根据您的经验,灰名单是否能有效阻止大量垃圾邮件?它是对例如 SpamAssassin 的有用补充还是将其添加到过度/不必要的顶部?
如果我将其推广到使用频率更高的域(可能是要求更高的用户),您是否会预计大部分配置不当的邮件服务器最终会退回或丢失邮件?
我们的电子邮件服务器最终被列入 sorbs.net 黑名单,我们正在绕圈子试图将其删除,目前这导致我们的供应商之间出现停机时间。
我是一名开发人员,不熟悉 Sorbs,但问我是否可以看看它。
更新:我们的管理员已经确定 sorbs 已经解决了这个问题。
SPF(发件人策略框架)似乎是打击垃圾邮件发送者/欺骗的好方法。
然而,尽管阅读了多次解释,我还是不太明白如何正确配置它。
比方说,我有我的服务器在a.x.com哪些主机www.x.com和b.x.com和c.x.com等。
我也有a.co.uk b.net c.info等等,每个都有各种各样的子域,都托管在x.com
对于所有这些域和子域,我想允许从以下地址发送邮件 a.x.com
我还希望他们都允许从 Gmail 为所有这些域发送邮件。
如何使用 SPF 进行设置?
我可以为x.com(or a.x.com)设置一个 SPF 记录,然后为其他所有内容设置一个简单的包含/指向x.com's 记录的指针,还是需要以不同的方式完成?
任何人都可以为上述示例提供一些 SPF 记录吗?
注意:我的问题的第二部分已得到解答(使用“ v=spf1 include:x.com -all”来包含/指向x.com的记录),但设置内容的关键部分x.com仍未得到解答......
我已经实施了所有内容并检查了所有内容(SPF、DomainKey、DKIM、反向查找),只有 Gmail 允许我的电子邮件进入收件箱。雅虎、Hotmail 和 AOL 都将我的邮件发送到垃圾邮件。我究竟做错了什么?请帮忙!
以下是发往 Yahoo、Hotmail 和 AOL 的邮件标头。我已经更改了名称和域名。我发送邮件的域名是poluxapp.com 和gemini.polluxapp.com。
雅虎:
来自 Shift Licensing Tue Jan 26 21:55:14 2010
X-Apparently-To:gamerfromhell13@yahoo.com 通过 98.136.167.163;星期二,2010年01月26 13点59分12秒-0800
返回路径:
X-YahooFilteredBulk:208.115.108.162
X-YMailISG:
gPlFT1YWLDtTsHSCXAO2fxuGq5RdrsMxPffmkJFHiQyZW.2RGdDQ8OEpzWDYPS.MS_D5mvpu928sYN_86mQ2inD9zVLaVNyVVrmzIFCOHJO2gPwIG8c2
L8WajG4ZRgoTwMFHkyEsefYtRLMg8AmHKnkS0PkPscwpVHtuUD91ghsTSqs4lxEMqhqw60US0cwMn_r_DrWNEUg_sESZsYeZpJcCCPL0wd6zcfKmtYaIk
idsth3gWJPJgpwWtkgPvwsJUU_cmAQ8hAQ7RVM1usEs80PzihTLDR1yKc4RJCsesaf4NUO_yN1cPsbFyiaazKikC.eiQk4Z3VU.8O5Vd8i7mPNyOeAjyt
7IgeA_
X-原产-IP:208.115.108.162]
Authentication-Results: mta1035.mail.sk1.yahoo.com from=example.com; domainkeys=pass (ok); 来自=example.com;
dkim=permerror (bad sig)
Received: from 127.0.0.1 (EHLO gemini.example.com) (
208.115.108.162 ) by mta1035.mail.sk1.yahoo.com with SMTP; 2010 年 1 月 26 日,星期二 13:59:12 -0800
接收:来自 gemini.example.com (gemini [127.0.0.1])
由 gemini.example.com (Postfix) 和 ESMTP id 3984E21A0167
for ; 2010 年 1 月 26 …
我运行一个 Postfix 服务器,它承载着一个小的、基于别名的邮件列表。让我们说people@myserver转发到alice@someprovider和bob@someotherprovider。现在,alice@someprovider可能会使用比我更严格的垃圾邮件过滤器。
当从(伪造)垃圾邮件backscattervictim@somewhere至people@myserver到达,和我的垃圾邮件过滤器检测为垃圾邮件,这在SMTP阶段被拒绝- >又何妨呢。
但是,当相同的邮件通过我的服务器时,我的服务器尝试将其转发给 alice,而她的服务器在 SMTP 阶段拒绝了它,我的服务器会向无辜的反向散射受害者创建一个退回邮件。(从我的服务器的角度来看,这是有道理的,但对于反向散射受害者来说很烦人。)
有没有办法防止这种行为?我不想关闭 NDR,因为(通常)它们用于合法目的。
我有一个运行 amavis 和 SpamAssassin 的 postfix 服务器来帮助过滤垃圾邮件。被检测为垃圾邮件的邮件在发送到用户的 Maildir 时如下所示:
来自 tom@tom-mint 星期五 3 月 15 日 01:46:20 2013
返回路径:<tom@tom-mint>
X-Original-To: tom@my-server.com
交付至:tom@my-server.com
X 病毒扫描:my-server.com 上的 Debian amavisd-new
X-垃圾邮件标志:是
X-垃圾邮件分数:6.463
X-垃圾邮件级别:******
X-Spam-Status:是的,分数=6.463 tagged_above=2 required=6.31
测试=[DRUGS_ERECTILE=2.221,FH_FROMEML_NOTLD=0.18,
FSL_HELO_NON_FQDN_1=0.001,HELO_NO_DOMAIN=0.001,RCVD_IN_PBL=3.558,
RDNS_DYNAMIC=0.363, TO_NO_BRKTS_DYNIP=0.139] autolearn=no
日期:2013 年 3 月 15 日星期五 01:46:19 -0400
至:tom@my-server.com
主题:***垃圾邮件*** 你好
用户代理:传家宝 mailx 12.5 6/20/10
内容类型:文本/纯文本;字符集=us-ascii
来自:tom@tom-mint (汤姆)
状态:RO
买点伟哥!
请特别注意前面带有 的主题***SPAM***和X-Spam-Flag: YES标题。
配置postfix将这些邮件存储在特殊垃圾文件夹中的最佳方法是什么?
从我的研究来看,似乎我需要使用与 postfix 不同的邮件传递工具来实现这一点,但我不确定哪种方法是最好的。似乎有很多过时的信息,我想知道 postfix 是否能够将消息放入文件夹中。
邮件目录都是Maildir。
许多垃圾邮件通过我运行的邮件服务器上的过滤器,使用相对简单的技巧,从顶部的几行(非常明显的)减肥或其他骗局文本开始,然后是来自编程文档的较大正文— 或者,最邪恶的是,从 Stack Exchange 中抓取的文本。充其量,Spamassassin 将其视为 BAYES_50,并且碰巧其余消息的构造足够仔细,以至于它们不会命中其他触发器。(例如,标题是最小的和正确的。)通常,所包含的摘录与我的合法利益密切相关,以至于邮件的整体评分为 BAYES_00,因为非常垃圾的令牌只是被系统管理员解决问题的多汁金块所淹没。
最上面的部分显然是垃圾邮件(事实上,它往往与之前作为垃圾邮件接收和训练的垃圾邮件非常相似),以至于我有点惊讶它竟然能通过——但显然确实如此。这似乎是一个单独的传球,它对消息的前 25 行(左右)进行了评分,并且权衡重重将解决问题。有没有办法做到这一点?
有几个人建议编写自定义正则表达式。我不想进入这个,因为这是一场不断失败的战斗。这是人们在贝叶斯垃圾邮件分类广泛使用之前所做的,而且通常很糟糕。没有人能跟上。这并不比为每条垃圾邮件点击删除键更有效,而且我需要做更多的工作。
贝叶斯垃圾邮件过滤工作。它甚至适用于这个垃圾邮件,如果我把“折叠上方”部分分开并只分析那部分,去掉诱饵/箔条。问题是:我怎样才能让 Spamassassin 做到这一点?
我公司的SPF记录格式如下:
“v=spf1 include:_spf.google.com ~all a mx ip4:XX0.0/23 include:spf.example.com ?all”
所以我们的 SPF 记录中间有一个“~all”。在openspf.com 网站上,他们这样说关于“全部”机制:
这种机制总是匹配的。它通常位于 SPF 记录的末尾。
因此,他们不会说“所有”必须放在 SPF 记录的末尾,而是说它通常放在末尾。
在我们公司,最近我们看到从我们的 SPF 记录中列出的服务器发送的电子邮件中出现一些软故障,但我们的 SPF 记录通过了我迄今为止找到的所有验证工具。
我想知道的是,在包含 Google Apps (_spf.google.com) 之后的这个“~all”是否会导致解析停止并且无法识别 SPF 记录的其余部分?通过与软失败是否取决于解析它的人以及他们如何处理 SPF 记录的具体实现?是否有任何理由拥有不在 SPF 记录末尾的“全部”机制?
是的,我知道我们可以更改我们的 SPF 记录。这个问题更多地是为了澄清这一切是如何运作的,而不一定是解决我们的具体情况。
在与垃圾邮件的日常战斗中,有几次我很想从疯狂的 Internet 连接的客户端中严格执行 DNS 要求。
详细地说,我会在我的smtpd_client_restrictions部分中添加reject_unknown_reverse_client_hostname设置,如下所示:
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
reject_unknown_reverse_client_hostname
reject_unauth_pipelining
Run Code Online (Sandbox Code Playgroud)
无论如何,我注意到当遇到这样的限制时,Postfix 的行为非常“软”,因为默认值为unknown_client_reject_code450。因此,客户端被邀请继续重试。
在调查 550 响应时,我在Postfix 官方文档中遇到了以下声明:

我绝对不是整个RFC 5321的专家,但作为一个足够了解RFC 821 的人,我真的不明白为什么,550 响应而不是 450 会影响我的 Postfix 实例在最大 SMTP 级别(破坏 RFC 合规性),特别是考虑到在出现临时错误的情况下,无论显式设置如何,Postfix 都会坚持使用 450。
那么,有人可以帮助我了解这种替换有什么问题吗?
PS:与此同时,我以“宽松”的限制结束:
smtpd_client_restrictions =
permit_sasl_authenticated
check_client_access hash:/etc/postfix/access
check_policy_service inet:127.0.0.1:4466
warn_if_reject reject_unknown_reverse_client_hostname
reject_non_fqdn_helo_hostname
reject_unauth_pipelining
reject_invalid_helo_hostname
Run Code Online (Sandbox Code Playgroud) spam ×10
email ×6
postfix ×3
smtp ×3
spf ×2
g-suite ×1
greylisting ×1
linux ×1
rbl ×1
spamassassin ×1