我们有多个应用程序当前将 SMTP 与外部 MTA 通信。这些电子邮件具有任意目标域(它们是要发送给我们用户的电子邮件),但都来自同一个内部域 (support@company.com)。
我想设置一个内部 MTA(我猜是使用 sendmail)将所有邮件排队,并让内部 MTA 将这些电子邮件转发到外部 MTA,因为外部 MTA 偶尔会出现故障,这会导致我们的应用程序出现各种问题。我想我可以将 sendmail 设置为排队中间件。
如果上述假设是正确的,那么 sendmail 的配置会是什么样的?'mailertable' 功能看起来很有前途,'SMART_HOST' 也是如此。
在我探索这些可能性之前有什么想法吗?
我在 77.245.64.44 上运行电子邮件服务器,最近开始在远程传送使用该服务器发送的电子邮件时遇到问题。只有大约 5% 的收件人拒绝了电子邮件,但他们都共享以下共同信息......
远程主机说: 554 由于发送 MTA 的声誉不佳,您对该邮件系统的访问已被拒绝。
据我所知,我的服务器不在任何黑名单上,并且设置正确(反向 DNS 检查等等)。我什至不确定“发送 MTA”是什么,但我认为它是我的服务器。
如果有人能对此有所了解,我将不胜感激!
这是完整的退回消息...
无法将邮件传递给以下收件人:
失败的收件人:someone@sunday-times.co.uk
原因:远程主机说: 554 由于发送 MTA 的声誉不佳,您对该邮件系统的访问已被拒绝。如果您认为此失败是错误的,请通过其他方式联系预期的收件人。
-- 消息的标题和前 20 行如下 --
收到:来自 79-79-156-160.dynamic.dsl.as9105.com [79.79.156.160] 通过 mail.fruityemail.com 和 SMTP;
2009 年 9 月 3 日星期四 18:15:44 +0100
来自:“菲尔·威尔克斯”
到:
主题:测试
日期:2009 年 9 月 3 日星期四 18:16:10 +0100
组织:果味解决方案
消息 ID:
MIME 版本:1.0
内容类型:多部分/替代;
边界="----=_NextPart_000_01C2_01CA2CC2.9D9585A0"
X-Mailer:Microsoft Office Outlook 12.0
线程索引:Acosujo9LId787jBSpS3xifcdmCF5Q==
内容语言:en-gb
X-CR-hashedpuzzle:ADYN AzTI BO8c BsNW CQG / D10y E0H4 GYjP HZkV Hc9t ICRU JPj7 … 有一个 .NET 程序,它使用 System.Net.Main 命名空间通过 SMTP 发送电子邮件。
它位于客户站点上,因此在到达目的地之前,它将通过(一系列?)SMTP 中继服务器。
目前我没有关于这个 smtp 重播/电子邮件基础设施的信息(并且获取这些信息将很困难)。
沿着这条线的某个地方,一个感叹号被插入到电子邮件的长 URL 中,从一行的开头开始大约 100 个字符。
编辑-实际上已经找到了大约 1000 个字符
这不会发生在测试系统或数百个其他站点上。
我确信这必须与转义码有关,以打破长队。
有人有任何想法吗?
我有一个运行 Win2008 RC2 的虚拟服务器。我已经在 IIS6 上设置了一个虚拟 SMTP 服务器,作为我在那里托管的网站的邮件提供程序。一切都很好,但是如果由于某种原因服务器重新启动(仍然启用自动更新 - 我正在尝试尽可能少地工作,因为我们有很多客户端),IIS6 不会重新启动SMTP 服务器。失败导致当前设置出现 500 个错误,所以我花了半天时间道歉。
有任何想法吗?
在服务中,我已将所有内容设置为自动恢复,但仍然没有骰子。
只要我重新启动 SMTP,就没有问题,所有邮件都会发送。它运行良好,只是不会自行重启。
我真的不想关闭自动更新,因为我们是一家小公司,每次 MS 决定有安全补丁时,我都无法抽出时间手动更新 15 个 Windows 副本。
所有建议表示赞赏!顺便说一句,我是这些论坛的新手。我搜索了但找不到答案,所以请善待。但坚定。我必须在这里学习。
我有一个运行 Postfix 2.5.1 的 Ubuntu 8.04LTS 系统。在该系统上 SMTP AUTH 运行良好。内容为
/etc/postfix/sasl/smtpd.conf:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN
Run Code Online (Sandbox Code Playgroud)
SASL 相关的属性是:
smtpd_sasl_type = cyrus
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
Run Code Online (Sandbox Code Playgroud)
当我这样做时sudo sasldblistusers2:
authusername@mail.mydomain.com: userPassword
Run Code Online (Sandbox Code Playgroud)
就像我说的,在 8.04LTS 系统上一切正常。
但是,我正在尝试将其迁移到运行 Postfix 2.9.3 的 Ubuntu 12.04LTS 系统,但我无法让它工作。我做的一切都是一样的,但是 postfix 每次都会导致身份验证失败。
这不是/etc/sasldb2文件。我试过从旧系统带过来文件,但不起作用。我使用以下命令创建了一个新文件:
saslpasswd2 -c -u mail.mydomain.com authusername
Run Code Online (Sandbox Code Playgroud)
而不起作用,但它WILL老系统上工作,如果我把它复制到旧的系统,这是我怎么知道有没有错的文件。
同样,我知道 postfix 正在查看该smtpd.conf文件。如果我mech_list在文件行中添加更多机制,当我连接到 smtpd 守护程序时,我会看到这些额外的机制被通告。当我删除它们时,它们又消失了。所以/etc/postfix/sasl/smtpd.conf显然正在被使用。 …
我想为某些域托管邮件服务。我已经成功地设置了 postfix 来为那些虚拟域查询 sql。我想做的是:
对于 25 上的连接:
对于 587 上的连接:
我的问题:
A. 我知道上面的 postfix 选项,但我找不到如何根据侦听端口区分它们。
B. 我是否会遇到使用上述政策的所谓合法客户的广为人知的问题?
我是邮件服务器设置的新手,对于任何无意义的问题/假设(请指出),我深表歉意。谢谢。
我试图弄清楚为什么即使电子邮件标有 SPF ,也会将伪造的电子邮件发送给主要电子邮件提供商(gmail.com、outlook.com)hardfail。该电子邮件还会发送到 Microsoft Exchange,它会PermError为相同的 SPF 记录抛出一个。
我使用 SOME_DOMAIN.com 域发送电子邮件,该域定义了损坏的 SPF 记录。该电子邮件是从我自己的 IP 地址传输的,该地址未在 SOME_DOMAIN.com 的 SPF 记录中明确列出。SOME_DOMAIN.com 的 SPF 记录具有以下三个属性,前两个违反了 SPF RFC-4408:
include:.~all和-all,两者都表示所有地址的集合应该softfail和hardfail发送到 Outlook.com 地址冒充 admin@SOME_DOMAIN.com 的电子邮件将在已发送电子邮件的 SMTP 标头中包含以下错误。此电子邮件已正常发送到用户的收件箱:
Received-SPF: PermError (: domain of SOME_DOMAIN.com used an invalid SPF mechanism)
Run Code Online (Sandbox Code Playgroud)
Gmail 还会将电子邮件发送到用户的收件箱,但会引发不同的 SPF 错误:
spf=hardfail (google.com: domain of admin@SOME_DOMAIN.COM does not designate x.x.x.x as permitted sender) smtp.mail=admin@SOME_DOMAIN.COM
Run Code Online (Sandbox Code Playgroud)
那么这里发生了什么?尽管有 …
在与垃圾邮件的日常战斗中,有几次我很想从疯狂的 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) 我无法在 Windows 2012 服务器上安装“SMTP-Server”功能。安装过程总是失败并显示“需要重新启动”消息。重新启动和(重新)启动 SMTP-Server 功能后,系统需要重新启动。
我尝试使用安装向导和 PowerShell 安装该功能。
尝试使用 PowerShell 安装该功能时,错误如下所示:
PS > Install-WindowsFeature SMTP-Server
Install-WindowsFeature : Fehler bei der Anforderung zum Hinzufügen oder Entfernen von Features auf dem angegebenen
Server.
Der Vorgang kann nicht abgeschlossen werden, da der angegebene Server neu gestartet werden muss.
In Zeile:1 Zeichen:1
+ Install-WindowsFeature SMTP-Server
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : DeviceError: (@{Vhd=; Credent...Name=localhost}:PSObject) [Install-WindowsFeature], Exce
ption
+ FullyQualifiedErrorId : DISMAPI_Error__Failed_Reboot_Required,Microsoft.Windows.ServerManager.Commands.AddWindow
sFeatureCommand
Success Restart Needed Exit Code Feature Result
------- -------------- --------- --------------
False …Run Code Online (Sandbox Code Playgroud) sendmail 允许对 TLS 对话设置一个限制。我想检查发送到 example.com 的消息是否发送到具有 *.messagelabs.com 证书的服务器。我想防范 DNS 欺骗和 MitM。如果 messagelabs 只有一台服务器,那会很容易:
TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com
Run Code Online (Sandbox Code Playgroud)
然而,messagelabs 有许多服务器和不同服务器的集群,它们具有相同名称的唯一 IP 和证书。一切都很好,我只想检查我向其发送邮件的服务器是否已被认证为属于 messagelabs。
我试过了
TLS_Rcpt:example.com VERIFY:256+CN:messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:*.messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:.*.messagelabs.com
Run Code Online (Sandbox Code Playgroud)
但我得到了类似的错误
CN mail31.messagelabs.com does not match .*.messagelabs.com
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?这是对我们的经常性请求(主要针对 TLS_Rcpt:example.com VERIFY:256+CN:*.example.com 等配置),所以我准备修改 sendmail.cf,但我无法理解
STLS_req
R $| $+ $@ OK
R<CN> $* $| <$+> $: <CN:$&{TLS_Name}> $1 $| <$2>
R<CN:$&{cn_subject}> $* $| <$+> $@ $>"TLS_req" $1 $| <$2>
R<CN:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " CN " $&{cn_subject} " does not match …Run Code Online (Sandbox Code Playgroud)