AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[smarthost](server)

Martin Hope
Dominik Mimra
Asked: 2021-04-25 02:46:43 +0800 CST

Sendmail 没有中继到 127.0.0.1:25 而不是智能主机

  • 0

我正在尝试在带有 sendmail 的 RHEL7 上使用 SMART_HOST。我已将 sendmail.mc 配置如下:

define(`SMART_HOST', `my.relay.com')dnl

编译后我在 sendmail.cf 中有这一行:

# "Smart" relay host (may be null)
DS[my.relay.com]

所以它似乎接受了它。重新启动 sendmail 服务。发送测试邮件时,我在日志中发现以下内容并且没有邮件到达(显然):

Apr 24 11:27:13 myhost sendmail[51939]: 13O9RDBi051939: [email protected], delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30008, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (13O9RDpv051940 Message accepted for delivery)

由于某种原因,它仍然中继到relay=[127.0.0.1],经过无休止的研究,我无法弄清楚原因。有什么建议吗?

sendmail rhel7 smarthost
  • 1 个回答
  • 254 Views
Martin Hope
Twissell
Asked: 2020-05-22 22:33:15 +0800 CST

Exim:仅对某些收件人域使用特定的智能主机

  • 0

我正在为下面描述的情况寻找解决方案。

我必须通过 smarthost 向某些域(hotmail、outlook)发送邮件,因为在 Microsoft 一侧阻止了我的服务器的 IP(Hetzner)。

这里的关键是我需要将未指定的发件人中继到智能主机(虽然这是可取的),但只有一个收件人域(hotmail.com)应该通过外部智能主机中继

exim 配置示例的摘录

send_via_gmail:
   driver = manualroute
   domains = ! +local_domains
   senders = [email protected]
   transport = gmail_smtp
   route_list = "* smtp.gmail.com"

解决方案一目了然。

只需在domains配置列表中添加所需的域。

够不够?可能有更好的方法去。

PS 嗯.. 或者domains = ! +local_domains是指发件人的域而不是收件人的域?

smtp exim smarthost
  • 1 个回答
  • 763 Views
Martin Hope
Alex
Asked: 2017-03-18 10:56:02 +0800 CST

Exim4:外发电子邮件的垃圾邮件检查后的本地递送

  • 0

domain.com并且domain.net托管在同一台服务器上server1。为避免垃圾邮件和病毒,所有外发电子邮件(甚至是本地域)都需要使用 3rd 方服务进行扫描。[email protected]因此,来自to的电子邮件[email protected]应该离开server1,然后将在 外部进行检查server1,然后根据其 MX 记录将其传递到server1,它来自于。

在这里,我们以一个循环结束:Too many "Received" headers - suspected mail loop.

这就是我所拥有的:

smarthost_relay:
   driver = manualroute
   ignore_target_hosts = 127.0.0.0/8
   condition = ${if !inlist{$sender_host_address}{<; 46.xxx.xxx.xxx }}
   condition = ${if or {{!eq{$sender_address}{}} {!eq{$sender_host_address}{}}}}
   condition = '${perl{check_limits}}'
   transport = auth_relay
   route_list = $domain 46.xxx.xxx.xxx::587
   same_domain_copy_routing = yes
   no_more

正如我预期的那样,这里$sender_host_address不起作用。因为在远程检查后电子邮件到达时它是空的。我想念什么?如何实现它?

问候,亚历克斯。

exim smarthost
  • 2 个回答
  • 237 Views
Martin Hope
Bulat M.
Asked: 2016-12-27 00:53:56 +0800 CST

有没有办法在不进行身份验证的情况下中继电子邮件?

  • 1

部署了简单的 Postfix 设置。目前使用谷歌的 SMTP 服务器作为智能主机:

relayhost = [smtp.gmail.com]:587

smtp_sasl_auth_enable=yes
smtp_sasl_security_options=noanonymous
smtp_use_tls=yes

smtp_tls_note_starttls_offer=yes
smtp_tls_security_level=encrypt

smtp_sasl_password_maps=hash:/etc/postfix/saslpassword

有对应文件/etc/postfix/saslpassword

[smtp.gmail.com]:587 <mail>:<password>

但是,以纯文本格式拥有敏感凭据让我感到困扰。

有什么方法可以在不进行身份验证的情况下使用 smarthost?

我的意思是,不是为了通过开放中继发送垃圾邮件,而是为了方便不以纯文本形式指定密码和更多的隐私?

非常感谢任何帮助,谢谢。

smtp postfix smarthost
  • 1 个回答
  • 1273 Views
Martin Hope
sootsnoot
Asked: 2016-08-16 16:43:07 +0800 CST

修复 starttls verify=fail, verifymsg=unable to get local issuer certificate

  • 8

在 EC2 实例上运行 Amazon Linux,使用sendmail. 我有一个网络解决方案的电子邮件帐户,并在我的配置中将该帐户用作SMART_HOST中继。sendmail除了一个小细节外,它运作良好。

在我的maillog文件中,我看到这样的条目:

sendmail[28450]: STARTTLS=client, relay=mail.example.com.netsolmail.net., version=TLSv1/SSLv3, verify=FAIL, cipher=DHE-RSA-AES256-SHA, bits=256/256

经过一番研究,我得出的结论verify=FAIL是本质上是无害的:连接实际上是加密的,只是无法验证主机的证书。

由于除了我之外没有人阅读日志文件,所以我不在乎。但是当消息到达时,Received标题显示

Received: from unknown (HELO example.com) ([email protected]@12.34.56.78)
  by 0 with ESMTPA; 15 Aug 2016 07:10:15 -0000

我希望看到with ESMPTSA,但我猜证书验证失败导致“S”被压制。

如何获得有关证书问题的更多详细信息,以及如何避免验证失败?我的猜测是多个子域mail.example.com.netsolmail.net与证书上的名称不匹配。但是我如何验证这一点,以及如何避免投诉 - 或者更确切地说,我如何才能让Received标头确认与ESMTPSA.

编辑:我编辑sendmail.mc添加

define(`confLOG_LEVEL', `15')dnl

现在邮件日志提供了更多细节。verify=FAIL在我现在看到的行之后:

sendmail[30706]: STARTTLS=client, cert-subject=/OU=GT39680792/OU=See+20www.rapidssl.com/resources/cps+20+28c+2915/OU=Domain+20Control+20Validated+20-+20RapidSSL+28R+29/CN=*.hostingplatform.com, cert-issuer=/C=US/O=GeoTrust+20Inc./CN=RapidSSL+20SHA256+20CA+20-+20G3, verifymsg=unable to get local issuer certificate

我认为这意味着验证失败的至少一个原因是 sendmail 找不到运行它的本地计算机的证书?由于我只是将传出的邮件中继到 netsol 服务器,从不接受来自互联网的传入邮件,我认为我不需要为该服务器提供证书。如果我需要一个,我在哪里/如何安装它?它可以是我用于我的网络服务器的同一个证书,还是我需要一个不同的证书?使用自签名证书是否足以让Received标头说with ESMTPSA,或者它需要是来自 CA 的商业证书?

编辑#2:

我接受@MadHatter 的回答。关键是得到confCACERT定义。我很尴尬,我唯一的借口是老脑残没有接触m4源。Amazon Linux 上的默认 sendmail.mc 文件已经包含

define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl

在其中,我已经验证了该文件存在。但我没有注意到dnl实际上在这些行开头的鬼鬼祟祟的小东西!我知道这意味着什么,但由于我很少看 m4 源代码,而且它就在其他一些dnl被标记为注释的 -ed 行之后#,我的大脑将它们记录为没有被注释掉!

实际上,我经历了一系列从 Firefox 下载证书并将 sendmail 指向我用于我们网站的 Digicert 证书的过程,但由于该主机只发送,从不接收电子邮件,因此没有其他必要。我把 and 的定义放回去了,dnl一切都很好,在适当的行上显示了and 。confSERVER_CERTconfSERVER_KEYmaillogverify=OKverifymsg=okSTARTTLS=client

但即使没有关于 TLS 的诊断,Received与 netsol 的连接的标头仍然显示with ESMTPA而不是with ESMTPSA. 哦,好吧,@MadHatter 对此也有兴趣。对不起,这太长了,有点像一场疯狂的追逐。但是我学到了很多东西,并且我确实改进了我的配置(以一种非重要的方式)。我希望那些绝望地经历过这一切的人也能学到一些东西。

smtp sendmail smarthost
  • 1 个回答
  • 25050 Views
Martin Hope
TiernanO
Asked: 2016-07-09 06:39:52 +0800 CST

维护期间关闭 EOP 连接器

  • 2

我有一个受 Exchange Online Protection 保护的内部虚拟邮件服务器,它在过去几个月中运行良好。在周末,托管虚拟机的主机将被拆除,大部分网络也将被拆除,以进行重新布线和其他升级。在此期间,有没有办法告诉 EOP 不要尝试将电子邮件发送到我的域,而是保留它直到我说它安全?我认为如果接收服务器离线,EOP 会保留邮件,但我不确定能保存多久。那么,我该如何暂停呢?我可以看到禁用连接器的选项,但是该域的邮件会发生什么情况呢?

email-server microsoft-office-365 smarthost
  • 1 个回答
  • 93 Views
Martin Hope
mikhailian
Asked: 2016-01-09 00:31:10 +0800 CST

如何根据 From:Debian 上 exim4 中的地址选择智能主机

  • 5

我想路由带有 From: through 的电子邮件和带有 From: .*@host1.comthrough的smtp.server1.com电子邮件。.*@host2.comsmtp.server2.com

目前,我已将 smarthost 配置为dpkg-reconfigure exim4-config包含update-exim4.conf.conf该行 dc_smarthost='smtp.server1.com::587'。也就是说,一切都通过smtp.server1.com.

我尝试在配置文件中的定义之前添加另一个路由器smarthost:,设置senders = .*@host2.com

smarthost_server2:
  debug_print = "R: smarthost_server2 for $local_part@$domain"
  driver = manualroute
  domains = ! +local_domains
  transport = remote_smtp_smarthost
  senders = .*@host2.com
  route_list = * smtp.server2.com byname
  host_find_failed = ignore
  same_domain_copy_routing = yes
no_more

但 exim 仍然通过smtp.server1.com. 我senders是否正确使用条件?

AFAIU,对于有电子邮件的人来说,这应该是一个相当常见的设置。@google.com 和 . @gmail.com 不想在他们的@gmail.com 电子邮件标题中透露他们也是谷歌员工的事实,所以路由应该不同。

smtp exim smarthost
  • 1 个回答
  • 2161 Views
Martin Hope
Carl Hörberg
Asked: 2009-07-16 23:08:33 +0800 CST

通过 smarthost 允许 sendmail 中继的最快方法是什么?

  • 10

我只希望 sendmail 通过我的 ISP 的 smtp 服务器中继,没有别的。我该如何设置?

linux smtp sendmail smarthost
  • 4 个回答
  • 33516 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve