从squeeze升级到wheezy后,我在debian上遇到postfix问题。Postfix 被配置为使用 dkim-filter 对消息进行签名。更新之前,一切正常,现在与服务(tcp 或 unix 套接字)连接失败。我想可能是因为 debian 切换到 opendkim,所以我删除了 dkim-filter 并安装了 opendkim - 同样的问题。我什至尝试设置 unix 文件套接字连接而不是 tcp 选项 - 同样的问题:
postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory
或(使用 tcp/ip):
postfix/cleanup: warning: connect to Milter service inet:localhost:8891: Connection refused
我检查了两次 - 套接字文件存在并且服务正在侦听端口 8891。
我能做些什么来解决这个问题?
我找不到任何关于 postfix 如何存储电子邮件的文档。它存储在哪里,以什么格式存储?我正在使用 Ubuntu 服务器 11
我刚刚使用 Postfix 和 Dovecot 设置了一个新的电子邮件服务器。我一直在进行故障排除,并且这一行一直出现在我的日志中(特别是 mail.info 和 mail.log)。什么是 NIS 域,如何解决问题?
postfix/smtpd[6107]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Run Code Online (Sandbox Code Playgroud) 对于#myhostname,我应该取消注释并输入我的主机名,即我给 VPS 的名称,对吗?或者它只是去myhostname = mydomain.net,换句话说,除了取消注释外,不要编辑短语“myhostname”?
那 #myhostname = virtual.domian.tld 是为了放置一个子域吗?
我应该为包括和不包括在内的所有人添加清单www吗?
运行尝试发送电子邮件的脚本时出现错误。
send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
send-mail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only
Run Code Online (Sandbox Code Playgroud)
任何人都可以说是什么问题,我需要一些许可吗?
我不小心删除了/var/log/mail文件。在那之前,我能够使用 postfix 的东西来监视它。现在,似乎 Postfix 不会将其日志发送到/var/log/mail,因为该文件没有使用新的日志消息进行更新。
有谁知道需要为 postfix 配置什么才能将电子邮件发送到本地主机并从本地主机接收?
例如,向 user1@localhost 发送电子邮件将:
我问的原因是因为我想为开发环境设置它,以便我可以测试我正在开发的应用程序。
在邮件服务器上使用Postfix和IMAP时,通常至少打开 3 个端口
25 smtp : incoming emails from anybody (whole internet)
465 smtps : outgoing emails from authorized users (to the whole intenet)
993 imap : imap for authorized users
Run Code Online (Sandbox Code Playgroud)
我想配置postfix,让授权用户只能通过465发送邮件。默认情况下不是这样。用户还可以通过端口 25 使用 STARTTLS。我想禁用它。
我的计划是使用端口 25 为公众发送电子邮件
为我的用户使用端口 465(我可以使用防火墙来允许特定的 IP 范围,或使用自定义端口)
这将防止端口 25 被暴力攻击利用,黑客试图猜测用户/密码。端口 25 根本不会接受用户/密码,即使它是有效的。由于 465 端口被防火墙限制,黑客也无法利用 465。
这在 Postfix 中可能吗?
我在 Debian Wheezy 上使用 Postfix 2.9.6-2
我的邮件服务器在垃圾邮件的黑名单中。我重新配置了 postfix。之后我的客户收到此错误,他们无法发送电子邮件。
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname
Run Code Online (Sandbox Code Playgroud)
在 Mail.log 中:
postfix/smtpd[9853]: NOQUEUE: reject: RCPT from unknown[xx.xx.xx.xx]:
404 4.5.2 <PLLAMNAZIFE>: Helo command rejected: need fully-qualified hostname;
from=<info@domain.com> to=<mail@mail.com> proto=ESMTP helo=<PLLAMNAZIFE>
Run Code Online (Sandbox Code Playgroud)
在我的 main.cf 中:
# rules restrictions
smtpd_client_restrictions =
permit_sasl_authenticated
smtpd_helo_restrictions =
permit_mynetworks,
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
permit
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client blackholes.easynet.nl,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client proxies.blackholes.wirehub.net,
reject_rbl_client dnsbl.njabl.org
smtpd_helo_required = yes …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种可靠的方法来测试是否postfix从 bash 脚本内部运行。
我的第一次尝试只是尝试pidof postfix,这是行不通的。
然后我试图得到postfix status:
POSTFIX_LOCATION=/var/packages/MailServer/target/sbin/postfix # location of postfix
result=`$POSTFIX_LOCATION status`
if [ -z $result ]; then
echo "Error: No status output from postfix"
elif [[ "$result" == *"is running"* ]]; then
echo "postfix is running!"
else echo "postfix is not running!"
fi
Run Code Online (Sandbox Code Playgroud)
但即使状态报告给控制台,该result变量仍为空。这是控制台输出:
postfix/postfix-script: the Postfix mail system is running: PID: 11996
Error: No status output from postfix
Run Code Online (Sandbox Code Playgroud)
我终于找到了一种通过获取进程名称来测试 postfix 是否正在运行的方法PID: 11996,即“master”。所以以下确实有效:
pidof master …Run Code Online (Sandbox Code Playgroud)