我有一个电子邮件服务器,它是消息传递应用程序的一部分,它会看到很多吞吐量。我想在 RAMdisk 上挂载 Exim 的消息队列以最大化性能;吞吐速度是最重要的,而不是在崩溃或系统重启的情况下团结一致。我发现很多信息都说在 RAMdisk 上安装消息队列会有很大帮助,但没有关于如何执行此操作的真实信息。
我很确定消息队列默认在 /var/spool/exim 中,并且我可以使用 tmpfs 来挂载 RAMdisk。我将如何在启动时安装 RAMdisk,并让 Exim 的消息队列使用它?
即挂载这个 RAMdisk 的命令是什么,我应该把这个命令放在哪里,以便它在机器启动时(但在 Exim 启动之前)执行?
谢谢 :)
在 Debian 上,exim4 密钥文件应该具有/etc/exim4/exim.key权限:
chmod 640 exim.key
chown root:Debian-exim exim.key
Run Code Online (Sandbox Code Playgroud)
如果我在 中已经有一个/etc/ssl/private由 group 拥有的密钥文件ssl-cert,我如何为 exim 回收它?
如果我将目录组更改/etc/ssl/private为Debian-exim它可以工作,但是例如我需要将 openldap 添加到该Debian-exim组,以便使用 slapd 的密钥。很不明显,不是吗?
添加Debian-exim到ssl-cert组不起作用:是 exim 软件本身将配置归咎于不安全。
哪个是最佳实践解决方案?
我有一台家庭服务器,并将系统驱动器更新为 SSD,因为它位于 /home 和 /var 的 USB 和 HDD 组合上。因为 USB 位于以前版本的 Debian 上,所以我进行了全新安装,这也将我升级到了 EXIM 版本 4.95,之前我使用的是 4.94.2。
尽管智能主机配置相同,但要使用 ISP 的 SMTP 服务器,它不再使用 TLS 并给出验证错误。
/var/log/exim4/mainlog:
2022-04-12 03:30:25 1ne6I7-000AHw-MF TLS session: (certificate verification failed): delivering unencrypted to H=<DOMAIN> [<IP>] (not in hosts_require_tls)
Run Code Online (Sandbox Code Playgroud)
邮件仍然以未加密的方式被接受,但现在来自 cron 作业的邮件被我的 ISP 标记为垃圾邮件。唯一的变化是消息的标题从原来的Received变成了。所以想必正是这种差异导致了它需要额外的关注。with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)with esmtp (Exim 4.95)
我一直使用与之前安装相同的自签名密钥和证书(带有 2013 年)时间戳。我还尝试生成一对新的,但效果类似。
在网上搜索建议后,建议使用 LetsEncrypt 配置,以便对其进行验证。我已经使用过它,但它在 EXIM 中导致了相同的行为。
这是我的配置
/etc/exim4/update-exim4.conf.conf:
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='<LOCAL DOMAIN>'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='' …Run Code Online (Sandbox Code Playgroud) 我希望用内部安装取代我们目前使用的外部 smtp 提供商。它应该处理以下情况:
某些地址应转发到 gmail 地址;我们希望继续使用 Gmail 作为我们的主要电子邮件界面。
其他地址应可用作 pop/imap 邮箱。
其他地址将以编程方式处理:它们将启动各种任务、记录等。这些地址应该启动处理电子邮件地址的过程,或者应该以易于处理的格式存储。
它也应该很容易配置域密钥、spf 和其他任何允许电子邮件传递所需的东西。
我在很久以前就使用过 sendmail。现在看来 postfix 和 exim 是推荐的选项。我的主要问题是:将地址转发到 gmail 以及编程访问的最佳选择和设置是什么?procmail 仍然是要走的路还是现在有更好的选择?
我们正在使用 linux/ubuntu 服务器。
到目前为止,当我不得不发送邮件列表时,我一直在 PHP 中使用带有Exim 4的 sendmail 函数,我想知道是否有一个干净的解决方案。
我很确定 Facebook 不会在 foreach 循环中发送电子邮件通知。
我曾尝试使用 Bash 脚本循环发送它们,但速度很慢,而且它正在使用数据库资源。
我在互联网上找到了一些邮件列表管理器,我认为这将是跟踪电子邮件的最佳方式,例如
如何用 Zend 框架做到这一点?(参考:“从 Zend Framework 应用程序向数百个收件人发送电子邮件的最佳方法是什么? ”)
我们在 DMZ 中放置了一个运行 MailCleaner 的新邮件网关,在其默认配置中,它将根据 Exim RCPT ACL 拒绝无效收件人。我们收到大量垃圾邮件发送到不存在的地址,因此我调整了 Exim conf 以丢弃而不是拒绝无效收件人,并验证它会在发出 RCPT TO 时丢弃带有 550 错误的连接我们域的本地地址部分错误。
我想知道以这种方式做事是否有任何不利之处——我宁愿没有垃圾邮件发件人能够连接并简单地尝试一个又一个错误地址,并且绝对不想接受和/或退回邮件对于坏地址。我知道 tar-pitting 是一种选择,但坦率地说,一旦输入错误地址,保持连接打开似乎是一种资源浪费。将它放在油布上或直接否认我不知道有什么缺点吗?提前致谢。
在检查 Exim 的日志消息时,我发现以下消息的许多条目“发件人验证失败”“拒绝 RCPT”...我不是 exim 专家...恐怕 Exim 没有将 100% 电子邮件发送给收件人,因为我们的电子邮件营销应用程序的打开率较低。
有人可以帮助理解这个日志消息吗?是我的服务器说“这里没有这样的用户”还是远程服务器?174.111.111.11代表我的服务器IP。谢谢
进出口日志
2010-10-02 14:00:19 SMTP connection from myserverdomain.com.br () [174.111.111.11]:54514 I=[174.111.111.11]:25 closed by QUIT
2010-10-02 14:00:19 SMTP connection from [174.111.111.11]:54515 I=[174.111.111.11]:25 (TCP/IP connection count = 2)
2010-10-02 14:00:19 H=myserverdomain.com.br () [174.111.111.11]:54515 I=[174.111.111.11]:25 Warning: Sender rate 672.4 / 1h
2010-10-02 14:00:19 H=myserverdomain.com.br () [174.111.111.11]:54515 I=[174.111.111.11]:25 sender verify fail for <fernandagaglianone=oi.com.br--2723--bounce@e-mydomain.com.br>: No Such User Here
2010-10-02 14:00:19 H=myserverdomain.com.br () [174.111.111.11]:54515 I=[174.111.111.11]:25 F=<fernandagaglianone=oi.com.br--2723--bounce@e-mydomain.com.br> rejected RCPT <fernandagaglianone@oi.com.br>: Sender verify failed
2010-10-02 14:00:19 SMTP connection …Run Code Online (Sandbox Code Playgroud) 我在 Windows 服务器上运行一个软件,通过远程 SMTP 服务器发送电子邮件通知。它有很少的配置选项,并且只支持没有 SSL/TLS 的基本 SMTP 身份验证。我在 Debian 服务器上运行 exim4,该服务器将成为此 Windows 程序的 SMTP 服务器。它使用默认配置进行设置,并允许 AUTH PLAIN 和 AUTH LOGIN 未加密连接。我已经通过 telnet 成功发送了一封电子邮件:
telnet servername 25
ehlo test
250-AUTH PLAIN LOGIN
...
auth plain XXX
235 Authentication succeeded
mail from: ...
...
Run Code Online (Sandbox Code Playgroud)
但是,我要连接到此服务器的程序无法连接。为了了解原因,我在连接期间运行了数据包嗅探器,并查看以下会话:
C: HELO hostname
S: 250 Hello hostname
C: AUTH LOGIN XXX | XXX
S: 503 AUTH command used when not advertised | 500 unrecognized command
C: QUIT
S: 221 closing connection
Run Code Online (Sandbox Code Playgroud)
我对 SMTP 协议不够熟悉,无法理解这里发生了什么。我需要在我的 exim4 SMTP …
我按照文档在 Exim 中配置了 DKIM 用于发送邮件。Exim 签署所有外发邮件。但由于用户的.forward文件,其中一些传出的消息会被转发。这对我来说是一个问题,因为其中一些转发是垃圾邮件(我的 exim 配置不进行任何验证),我不想对它们承担责任。但我不知道如何配置 Exim 不签署这些消息。
我的配置基本上是 Debian Squeeze 默认配置,设置了一些DKIM_*宏。我可以发布更多详细信息,但我认为看到任何有条件 DKIM 签名的示例都会让我正确。
我一直在遵循有关如何通过 exim 和我的 gmail 帐户从 ubuntu 服务器发送电子邮件的各种指南。我想我已经在这个街区周围很多次了,我以某种方式把它搞砸了。谁能看出哪里不对?
我不想在这个论坛帖子中包含任何真实的电子邮件地址或域名,所以每当它们出现在配置文件等中时,我都会按如下方式将它们换掉。我将使用愚蠢的名称而不是描述性名称,这样它们就不会与系统变量等混淆。
domain name for the server: bigspanners.com
username i'm logged into the server as: jimmy
hostname on the server: spanners
"long" hostname (result of `hostname -f`): spanners.bigspanners.com
the gmail address i want to send from: qwerty.uiop@gmail.com
gmail password: abcdefgh
Run Code Online (Sandbox Code Playgroud)
我的 exim4 配置 ( /etc/exim4/update-exim4.conf.conf) 如下所示:
#/etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost='bigspanners.com'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Run Code Online (Sandbox Code Playgroud)
我在/etc/exim4/passwd.client文件中有这个:
# password file used when the local exim …Run Code Online (Sandbox Code Playgroud) exim ×10
email ×2
smtp ×2
bulk-action ×1
debian ×1
dkim ×1
email-server ×1
gmail ×1
performance ×1
postfix ×1
queue ×1
ramdisk ×1
scripting ×1
tmpfs ×1
ubuntu ×1