我最近将我的服务器移到了 slicehost 上的一个新切片,从那以后,gmail 一直将我的电子邮件标记为垃圾邮件。我添加了域密钥,创建了 SPF 记录,进行了反向 dns 设置,而且我的 ip 没有被列入黑名单。这是来自服务器电子邮件的标题:
Delivered-To: address@gmail.com
Received: by 10.204.190.208 with SMTP id dj16csp73539bkb;
Thu, 1 Mar 2012 14:16:43 -0800 (PST)
Received: by 10.236.170.193 with SMTP id p41mr7956047yhl.15.1330640203327;
Thu, 01 Mar 2012 14:16:43 -0800 (PST)
Return-Path: <no-reply@wordstash.com>
Received: from wordstash.com (wordstash.com. [174.143.24.37])
by mx.google.com with ESMTP id i19si1775474anm.152.2012.03.01.14.16.42;
Thu, 01 Mar 2012 14:16:43 -0800 (PST)
Received-SPF: pass (google.com: domain of no-reply@wordstash.com designates 174.143.24.37 as permitted sender) client-ip=174.143.24.37;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of no-reply@wordstash.com designates …Run Code Online (Sandbox Code Playgroud) 我在服务器上有一个公司网站,该网站还托管我们所有的电子邮件。我不知道所有员工在备份电子邮件/在服务器上留下旧邮件等方面有多勤奋。事实上,我想避免所有这些麻烦并让旧电子邮件在旧服务器上运行。
我只是想将网站移到一个新的、更可靠的服务器上,而让电子邮件在旧服务器上运行。
我怎样才能做到这一点?当我将 DNS 指向新虚拟主机的 IP 地址时,一旦它传播,它会切断到旧服务器的电子邮件吗?旧服务器的服务器管理员似乎是这么认为的。
这里的解决方案是什么,我们希望员工的更改/重新配置/数据丢失量最少?
我有一个快速的问题。我有两个 Postfix 实例在 Ubuntu 服务器上运行,我想编写一些脚本来通过电子邮件发送我们的服务器管理员 Postfix 统计信息(队列计数、发送等)。我如何获得有关第二个实例的信息?
当我运行以下命令时:
postqueue -p
Run Code Online (Sandbox Code Playgroud)
这是一审、二审还是两者的信息?如果它不是关于第二个实例的信息,我将如何获得该信息?
谢谢你的帮助!
使用 postfix 发送电子邮件时,我有时会收到此错误:
451 #4.1.8 Domain of sender address <user@mydomain.tld> does not resolve
(in reply to MAIL FROM command)
Run Code Online (Sandbox Code Playgroud)
域mydomain.tld是可解析的,这意味着 A、MX、PTR 记录设置正确。
但是,发送服务器确实有一个不同的域,anotherdomain.tld但允许发送电子邮件,mydomain.tld因为我将 MX 记录设置mydomain.tld为anotherdomain.tld。有问题的电子邮件的信封是user@mydomain.tld。
我还需要设置其他一些 dns 条目吗?
或者我还能怎么解决这个问题?(虽然我想保留服务器结构)
场景如下:
复制,然后通过网络(仅)从实时邮件服务器同步到另一台服务器。
邮件服务器是实时的,这意味着许多文件(邮件)正在被更改、删除和创建。我试过 rsync 但它非常慢,一段时间后我得到:
警告:一些文件在 main.c(1040) [sender=3.0.5] 传输之前就消失了(代码 24)
由于服务器处于活动状态,我不希望显着增加服务器上的负载。
哪个是最好的选择,最好是每种方法的优缺点。
重要事实:
更新
目的:迁移到新服务器
预计到达时间:尽快
更新 2
服务器限制: 实时邮件服务器在旧的软件和硬件中运行,我不会冒险在那里安装任何东西。
更新 3
我更喜欢开源解决方案。
RFC 5321 将电子邮件地址限制为 7 位 US-ASCII 编码。RFC 6531(一个相当新的规范)允许 SMTP 命令和 IMF 标头中的电子邮件地址以 UTF-8 编码。这个 SMTP 扩展使得国际化的电子邮件地址(例如,pelé@example.com)成为可能。
SMTP 服务器通过EHLO使用SMTPUTF8关键字回复命令来宣传对国际化电子邮件的支持:
250-smtp.example.com at your service
250 SMTPUTF8
Run Code Online (Sandbox Code Playgroud)
SMTP 客户端通过以下MAIL命令使用此扩展:
MAIL FROM:<pelé@example.com> SMTPUTF8
Run Code Online (Sandbox Code Playgroud)
问:是否有支持 SMTPUTF8 的 SMTP 服务器或电子邮件客户端?
...这很难用标题来描述。此描述应突出问题。
10-master
....
service auth {
unix_listener auth-userdb {
mode = 0644
user = vmail
group = vmail
}
...
Run Code Online (Sandbox Code Playgroud)
编辑 - 附加配置信息(一些重叠)
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these …Run Code Online (Sandbox Code Playgroud) 我有邮件服务器 Postfix+Saslauth。我为 Postfix 配置了多个实例:
后缀
后缀出
和两个实例saslauth:
萨斯劳德
saslauthd-out
设置saslauthd用于验证Postfix服务及其saslauthd-out另一个实例。
为了创建sasl我的第二个实例,我这样做:
cp /etc/default/saslauthd /etc/default/saslauthd-out
使用此配置: :~# vim /etc/default/saslauthd-out
DESC="SASL Authentication Daemon postfix-out"
NAME="saslauthd-out"
MECHANISMS="pam"
OPTIONS="-c -m /var/spool/postfix-out/var/run/saslauthd-out"
Run Code Online (Sandbox Code Playgroud)
在后缀输出(/etc/postfix-out/sasl/smtp.conf)的配置中:
pwcheck_method: saslauthd-out
Run Code Online (Sandbox Code Playgroud)
和后缀(/etc/postfix/sasl/smtp.conf):
pwcheck_method: saslauthd
Run Code Online (Sandbox Code Playgroud)
当我重新启动时saslauth一切正常
当我尝试连接smtp server(postfix) 时,一切正常,并且身份验证成功,但在smtp server(postfix-out) 中,连接到 smtp 正常,但无法进行身份验证,并且发生了此错误:
:~# telnet mail2.example.com 25
Trying 111.222.333.444...
Connected to mail2.example.com.
Escape character is '^]'.
220 mail2.example.com ESMTP Postfix (@@DISTRO@@)
auth plain YWdoc2EAYWdoc2hhbGRvcmFu
535 5.7.8 …Run Code Online (Sandbox Code Playgroud) 我有一个在 VM 上运行的 postfix 实例。如果我们超过每分钟 SMTP 连接的阈值,VM 提供程序会关闭我们 - 大约 10。在一个典型的一天中,我们可能会发送 1000 条消息,所以 10 是可以的。然而它是一个邮递员服务器,所以峰值速率经常超过 10。然后端口 25 被阻塞了一段时间。这会造成积压。对积压的重试会产生远高于 10 的连接“爆发”。最终结果是,一旦我们被阻止,我们就会一直被阻止,直到有人手动干预。
“明显”的修复似乎是为了确保 postfix 保持在限制范围内 - 即出站连接节流。或者至少将运行的 smtp 交付进程数限制为 1。
有没有办法做到这一点?
所有其他类型的消息(即,标准跟踪 RFC 不要求具有空反向路径的任何消息)应该以有效的非空反向路径发送。
为免生疑问,RFC 2119 §3将“应该”定义为“在特定情况下可能存在忽略特定项目的有效理由,但在选择不同的课程之前必须理解并仔细权衡全部含义。 ”
正在考虑的“特殊情况”是 Alice不希望收到传递状态通知(与她发起的电子邮件相关)的情况。
她有几个选择:
当她收到任何此类通知时,忽略/丢弃它——显然这种行为是完全正确的,但它很麻烦(并且浪费了她的资源);
拒绝在较低级别接受此类通知——可以说反向路径将不再“有效”(遗憾的是未在 RFC 中定义),如果是这样,这种行为与 RFC 的建议相反;或者
使用 null 反向路径发起电子邮件,以便从一开始就不会生成通知——这显然与 RFC 的建议相反。
我很确定这些情况构成了忽略上面引用的 RFC 建议的“正当理由”——但我想确定我已经理解了选项 2 和 3 的“全部含义”。
我特别注意到:
在选项 2 下,某些代理可能会检测到反向路径无效
在选项 3 下,某些代理可能会将具有空反向路径的邮件视为特殊情况
无论哪种方式,代理可能因此拒绝接受/中继/发送电子邮件,或者可能使用此类信息来增加其被标记为垃圾邮件的可能性。这些措施在实践中有多普遍?
我还应该考虑其他任何问题/影响吗?
email-server ×10
email ×5
postfix ×5
smtp ×3
copying ×1
dovecot ×1
linux ×1
rfc ×1
saslauthd ×1
spam-filter ×1
spamassassin ×1
ubuntu ×1
ubuntu-12.04 ×1
utf-8 ×1