标签: email-server

后缀:连接到 Milter 服务 inet:127.0.0.1:8891:连接被拒绝

我注意到如果我输入service postfix status,milter 会出现错误:

Jul 01 17:39:01 mail postfix/cleanup[13921]: warning: connect to Milter service inet:127.0.0.1:8891: Connection refused
Run Code Online (Sandbox Code Playgroud)

但这意味着什么,我该如何解决?它与DKIM有关吗?因为我试图设置它,但它仍然无法正常工作。您需要帮助哪些文件?这是我的 opendkim.conf :

## CONFIGURATION OPTIONS

# Specifies the path to the process ID file.
PidFile /var/run/opendkim/opendkim.pid

# Selects operating modes. Valid modes are s (signer) and v (verifier). Default is v.
Mode    sv

# Log activity to the system log.
Syslog  yes

# Log additional entries indicating successful signing or verification of messages.
SyslogSuccess yes

# If logging is enabled, …
Run Code Online (Sandbox Code Playgroud)

email email-server postfix dkim

10
推荐指数
2
解决办法
2万
查看次数

电子邮件大小限制是否包括正文大小?

(如果有更好的地方可以问这个问题,请告诉我。)

许多电子邮件服务器限制传入电子邮件所附加文件的总大小。例如,某些电子邮件服务器可能不允许大于 20MB 的邮件;如果附件为 22MB,则会失败;如果一个附件为 10MB,第二个附件为 12MB,也会失败。大多数电子邮件服务器都会实施某种限制,如本例所示,但允许的总大小因具体情况而异。

这是我不明白的部分 - 该大小限制仅适用于附件吗?或者它是否适用于电子邮件的总大小?例如,假设一封假设的电子邮件有一个大小正好为 19.98MB 的附件。但是,电子邮件正文为 0.03MB。假设接收电子邮件服务器的限制为 20MB,这会到达吗?或未能到达?或者,该特定示例是否成功或失败取决于假设接收它的电子邮件服务器?

email email-server

10
推荐指数
2
解决办法
3761
查看次数

当收件人有电子邮件转发时,SPF 硬故障和 DKIM 故障

我在我的 SMTP 服务器上为我的域和 DKIM 消息签名配置了硬故障 SPF。由于这是唯一应该用于从我的域发出邮件的 SMTP 服务器,因此我没有预见到任何复杂情况。

但是,请考虑以下情况:我通过我的 SMTP 服务器向我同事的大学电子邮件发送了一封电子邮件。问题是我的同事将他的大学电子邮件转发到他的 GMail 帐户。这些是邮件到达他的 GMail 邮箱后的标题:

Received-SPF: fail (google.com: domain of me@example.com 没有指定 192.168.128.100 作为允许的发件人) client-ip=192.168.128.100;
身份验证结果:mx.google.com;spf=hardfail(google.com:me@example.com 的域未将 192.168.128.100 指定为允许的发件人)smtp.mail=me@example.com;dkim=hardfail(测试模式)header.i=@example.com

(标题已被清理以保护非 Google 方的域和 IP 地址)

GMail 根据我的 SPF 和 DKIM 记录检查传送链中的最后一个 SMTP 服务器(理所当然)。由于交付链中的最后一个 STMP 服务器是大学的服务器而不是我的服务器,因此检查会导致 SPF 硬故障和 DKIM 故障。幸运的是,GMail 没有将邮件标记为垃圾邮件,但我担心这可能会在将来引起问题。

我对 SPF hardfail 的实施可能太严格了吗?我应该注意的任何其他建议或潜在问题?或者也许有更理想的大学电子邮件转发程序的配置?我知道转发服务器可能会更改信封发件人,但我看到这变得很混乱。

email-server spf dkim domainkeys mail-forwarding

9
推荐指数
1
解决办法
8181
查看次数

Amazon SES 与 EC2 Smtp 服务器

我们在 EC2 实例中有一个现有的 smtp 环境设置,用于发送密码重置等交易电子邮件。现在我们需要向每天超过 1000 封电子邮件的大型用户群发送系统电子邮件。

第一个问题是:Amazon SES 交付可靠吗?

第二:我们应该使用我们自己的 SMTP 实例还是 SES ?我认为如果我们使用我们的 SMTP 服务器,那么发送大量电子邮件最终会导致邮件进入垃圾邮件。

由于邮件是重要的系统电子邮件,而不是促销批量电子邮件。交付是一个主要问题。

email-server smtp amazon-ec2 amazon-web-services amazon-ses

9
推荐指数
1
解决办法
4898
查看次数

AMaViS:缺少 X-Spam-Status 标头

我按照 workaround.org 上的教程(Debian Squeeze 的 ISPmail 教程)在 Debian Squeeze 上设置了带有 Dovecot、Postfix 和 AMaViS 的邮件服务器。它使用虚拟域并将域、电子邮件地址和帐户存储在 MySQL 数据库中。

一切正常——除了我缺少一些电子邮件标题。

收到的标题:

  • X-隔离-ID
  • X 病毒扫描

(使用“真正的”垃圾邮件并通过 GTUBE 使用sendmail email@example.com < /usr/share/doc/spamassassin/examples/sample-spam.txt

缺少标题:

  • X-垃圾邮件标志
  • X-垃圾邮件评分
  • X-垃圾邮件级别
  • X-垃圾邮件状态

但是垃圾邮件会改变主题。所以我把一切都设置正确了,不是吗?

如何在我的邮件中获取那些丢失的标题?


这是我的 AMaViS 配置文件 ( /etc/amavis/conf.d/50-user)

use strict;

#
# Place your configuration directives here.  They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file …
Run Code Online (Sandbox Code Playgroud)

email-server debian spamassassin amavis debian-squeeze

9
推荐指数
2
解决办法
2万
查看次数

Dovecot 创建文件夹,Postfix 需要文件

我曾尝试使用本指南为虚拟用户配置 Postfix/Dovecot 组合。

我的服务器在 CentOS 6.5 上运行 Postfix 2.6.6 和 Dovecot 2.0.9。

问题是,当我使用 Outlook 2013 连接到服务器(它在 IMAP+SMTP 上连接得很好)并向自己发送一封测试电子邮件时,我没有收到电子邮件。查看邮件日志我可以看到我收到错误

postfix/virtual[2768]: 9C3D480768: to=<user@domain.net>, relay=virtual, delay=1132, delays=1132/0.02/0/0.02, dsn=4.2.0, status=deferred (delivery failed to mailbox /var/vmail/domain.net/user: cannot open file: Is a directory)
Run Code Online (Sandbox Code Playgroud)

错误消息非常清楚,我想,好吧,这可能是我之前安装的 Cyrus/Postfix 安装的缺陷。我继续删除了 vmail 文件夹,为域创建了一个子文件夹,并将所有内容的所有权更改为 vmail:vmail。我重新启动 postfix 和 dovecot,收件箱目录再次出现。Postfix 继续像以前一样抱怨。然后我尝试删除文件夹,然后创建一个空文件,但这只会使它成为 dovecot 问题而不是后缀问题,所以现在 dovecot 说它需要一个文件而不是目录。

/etc/postfix/main.cf

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps

inet_interfaces = …
Run Code Online (Sandbox Code Playgroud)

email-server postfix centos dovecot

9
推荐指数
1
解决办法
5807
查看次数

后缀 TLS 错误

我与一个后缀/达夫科特/ Roundcube安装工作,力争虚拟用户的邮件系统,可以通过互联网发送邮件,如记录在这里

一切似乎都运行良好;Dovecote 显示没有问题,我可以 telnet 到我所有的端口;但是,每当我尝试通过 Roundcube 发送邮件时,都会出现错误:

SMTP Error (220): Authentication failed.
Run Code Online (Sandbox Code Playgroud)

从日志中:

[17-Jan-2015 05:27:31 +0000]: SMTP Error: SMTP error: Authentication failure: STARTTLS failed (Code: ) in /usr/share/webapps/roundcubemail/program/lib/Roundcube/rcube.php on line 1505 (POST /roundcube/?_task=mail&_unlock=loading1421472451594&_lang=en_US&_framed=1?_task=mail&_action=send)
Run Code Online (Sandbox Code Playgroud)

我想既然 Postfix 负责 SMTP,它一定是罪魁祸首。在我的 Postfix 日志中,我看到:

Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: disconnect from localhost.localdomain[127.0.0.1]
Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: lost connection after STARTTLS from localhost.localdomain[127.0.0.1]
Jan 16 21:14:35 steelhorse postfix/smtpd[18426]: warning: TLS library problem: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1293:SSL alert number
Jan 16 21:14:35 …
Run Code Online (Sandbox Code Playgroud)

email-server postfix roundcube tls

9
推荐指数
1
解决办法
5万
查看次数

解析未送达的邮件标头(退回邮件)

解析发送回我的服务器的退回(无法投递)电子邮件的标头并确定它是软退回还是硬退回的最佳方法是什么?

我只向我的用户发送选择加入的电子邮件,但有时一些电子邮件地址会过时。当电子邮件退回到我的服务器时,我想找出它退回的原因(软/硬)。然后我可以在我的数据库中适当地处理它和/或标记用户在下次登录时更新他们的电子邮件。

我正在使用 Ubuntu 和 Postfix。我已经成功地使用别名和虚拟别名实现了 VERP。因此,退回的电子邮件的返回路径为bolt+OrigEmailAddress@example.com,我可以将它们通过管道传输到脚本。

现在我已经设置了 VERP,我知道原始电子邮件发送给谁,但我需要解析返回的邮件标头以确定它是软退回还是硬退回。

处理这个问题的最佳方法是什么?据我了解,并非所有邮件服务器都遵循相同的规则,并且标头可以具有多种格式。是否有一些开源项目可以跟踪这些类型的事情?我可以实现一些简单的方法来正确地对大多数反弹进行分类?

我正在努力保护我的邮件服务器的声誉,因此非常感谢您的帮助!

email email-server email-bounces

9
推荐指数
2
解决办法
9033
查看次数

Helo 命令被拒绝:找不到主机 - 设置 postfix 以接受通过我的公共服务器从我的家庭服务器发送邮件

我想从我的家庭服务器接收系统电子邮件。所以我试图通过我的公共服务器配置 postfix 来做到这一点。我的公共服务器有一个固定的 IP,而我的家庭服务器在一个私有网络中,由于我的路由器的主机名被包含在主机名中,导致一个完整的主机名“homeserver.blablabla_crappyrouter”。

我的家庭服务器通过具有固定 IP 的 OpenVPN 隧道连接到我的公共服务器,其中我的家庭服务器是客户端。从我的家庭服务器到我的公共服务器(反之亦然),有一个固定的 IP,因此它们可以通过固定地址毫无问题地相互访问。这是一条隧道,可以让我从任何地方访问我的家庭服务器,而不会出现安全问题。

我的公共服务器上的 postfix 配置包括以下内容:

smtpd_recipient_restrictions = reject_invalid_hostname,
        reject_unknown_recipient_domain,
        reject_unauth_destination,
        reject_rbl_client sbl.spamhaus.org,
        permit

smtpd_helo_restrictions = reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname

smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net
Run Code Online (Sandbox Code Playgroud)

在我的家庭服务器上,我添加了 OpenVPN 的公共服务器的 IP 使用

relayhost = [<public server IP through OpenVPN>]
Run Code Online (Sandbox Code Playgroud)

现在这个配置不发送电子邮件并给我错误:

Helo 命令被拒绝:找不到主机

我对此进行了研究,发现 postfix 会搜索主机名,但显然由于主机名混乱而找不到它。

我的问题:如何告诉我的公共服务器的 postfix 盲目地允许来自我的家庭服务器的所有内容?

谢谢。

更新:

我确实在 main.cf 中设置了选项

smtpd_helo_required = no
Run Code Online (Sandbox Code Playgroud)

但这没有帮助。以下是我发送测试电子邮件后的 /var/log/mail.log 条目:

Sep  2 15:53:53 HomeServer sm-mta[6677]: t82Drr6w006677: from=sys@mydomain.com, size=69, class=0, nrcpts=1, msgid=<201509021353.t82Drr6w006677@HomeServer.blablabla_crappyRouter>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Sep  2 …
Run Code Online (Sandbox Code Playgroud)

email email-server postfix openvpn tunnel

9
推荐指数
2
解决办法
4万
查看次数

如何为 sendmail TLS_Rcpt 使用通配符?

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)

email-server smtp sendmail tls

9
推荐指数
1
解决办法
829
查看次数