Postfix 是否可以向通过明文(非 TLS)连接收到的所有电子邮件添加警告?
例如修改主题和/或添加自定义标题。
我按照大多数网站推荐的此类操作系统设置的说明进行了 Postfix + SpamAssassin 设置。基本上我编辑了我master.cf的添加:
smtp inet n - - - - smtpd -o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Run Code Online (Sandbox Code Playgroud)
SpamAssassin 实际上工作正常并且我的电子邮件被过滤了,但是我注意到以下内容。过去,在 SpamAssassin 之前,将电子邮件发送到我的服务器时,标题会显示如下内容:
Return-path: <sender@sender-server.dev>
Envelope-to: <destination@my-server.dev>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.sender-server.dev ...
by mail.my-server.dev
Run Code Online (Sandbox Code Playgroud)
在 SpamAssassin 之后,它们显示:
Return-path: <sender@sender-server.dev>
Envelope-to: <destination@my-server.dev>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.my-server.dev ...
by mail.my-server.dev
Run Code Online (Sandbox Code Playgroud)
看起来在启用 SpamAssassin 时,Received: from …
我正在运行使用 Dovecot LMTP 进行邮件传递的 Postfix 服务器。我这样做是因为它与筛子配合得很好。
但是,我最近收到了一些主题行中带有 Unicode 的电子邮件。
这封邮件被 Postfix 接收正常,它显然支持 SMTPUTF8 - 但是,当它到达 LMTP 时它就死了:
<me@myhost> (expanded from <meother@mhost>): SMTPUTF8 is required, but
was not offered by host myhost[public/lmtp]
我在 Postfix SMTPUTF8 文档中读到,
当收到带有 SMTPUTF8 请求的消息时,仅在以下情况下,Postfix 才会将消息传送到非 SMTPUTF8 SMTP 或 LMTP 服务器:
没有消息头值包含 UTF-8。
信封发件人地址不包含 UTF-8,
该特定 SMTP/LMTP 传送事务的信封收件人地址不包含 UTF-8。
注意:同一消息的其他电子邮件传送事务中的收件人可能仍包含 UTF-8。
否则,Postfix 会将邮件投递交易的收件人视为无法投递。传递状态通知消息将是 SMTPUTF8 消息。因此,它将受到与通过 SMTPUTF8 请求接收的电子邮件相同的限制。
-- http://www.postfix.org/SMTPUTF8_README.html#detecting
相关部分是“Postfix 将交付...到非 SMTPUTF8 ... LMTP 服务器,仅当... [消息中没有 UTF8]”。
这措辞笨拙,但暗示 Postfix 只会将 UTF8 邮件传递到支持 UTF8 的下游服务器。
因为我正在接收 UTF8 邮件,Postfix …
我安装了 certbot 并成功使用它来加密我的主页。
现在我尝试使用 dovecot 和 postfix 为我的网站设置电子邮件系统。
我大部分时间都在运行,唯一的问题是,thunderbird 向我发出有关地址欺诈的警告,因为我将 mysite.com 的 ssl 密钥用于 imap.mysite.com(与 smtp 相同)那么我如何添加 imap.mysite使用 certbot 将 .com 和 smtp.mysite.com 转换为现有的 mysite.com 证书以避免警告?
我尝试使用 Google 设置postfix作为其中继主机,但惨败。
Google 改用OAuth2身份验证并弃用其他身份验证方法。这就是为什么我尝试使用新的 OAuth2 身份验证而不是旧的用户/密码身份验证。
据我了解,postfix 本身不进行任何 SASL 身份验证,而是依赖于其他应用程序,例如Cyrus SASL。Cyrus 有一个插件可以进行 OAuth2 身份验证:
https://github.com/moriyoshi/cyrus-sasl-xoauth2
但从这里开始我迷失了。我不明白如何正确配置 postfix/cyrus 以使用 OAuth2 身份验证。
我设法设置 getmail 使用 OAuth2 身份验证从 Google 获取邮件。我希望用 postfix 和 Cyrus 做同样的事情不会更困难。但我想我错了。
很难提出具体问题。我多次更改配置文件,以至于我可能完全搞砸了。
但我想知道是否有更多关于如何配置 postfix 以使用具有 OAuth2 身份验证的中继主机的文档?
我已经在我的 CentOS 机器上安装了 Postfix。我可以很好地使用 将邮件发送到本地帐户mutt,但是当我尝试将邮件发送到 myactualmail@gmail.com 之类的远程邮件时,我不明白为什么我无法接收任何内容。这是我的main.cf:
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = server.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
unknown_local_recipient_reject_code = 550
mynetworks = 192.168.200.0/24, 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = …Run Code Online (Sandbox Code Playgroud) 几天以来,我的网络/邮件服务器(centos 6.4)正在大量发送垃圾邮件,只有停止 postfix 服务才能结束它。
SMPT 设置为仅接受通过 ssl 和使用用户名/密码的连接。而且我已经更改了(疑似)受感染电子邮件帐户的密码。
电子邮件是通过 iRedMail 设置的。
任何有关识别和阻止这种情况的帮助都是受欢迎的!
添加:一些日志摘录:
Mar 23 05:01:52 MyServer postfix/smtp[9494]: 4E81026038: to=<bet@magiccablepc.com>, relay=mail.suddenlinkmail.com[208.180.40.132]:25, delay=3, delays=0.07/0/2.4/0.5, dsn=2.0.0, status=sent (250 Message received: 20140323040153.YPML21660.txedge-vm03.suddenlink.net@MyServer.org)
Mar 23 05:02:01 MyServer postfix/smtp[9577]: 209BA26067: to=<gino.c@bigpond.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=14, delays=12/0/0/2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as B654226078)
Mar 23 05:02:01 MyServer postfix/smtp[9495]: 8278726077: to=<harry@gunship.org>, relay=mx-biz.mail.am0.yahoodns.net[98.139.171.245]:25, delay=0.88, delays=0.25/0/0.47/0.14, dsn=4.7.1, status=deferred (host mx-biz.mail.am0.yahoodns.net[98.139.171.245] said: 421 4.7.1 [TS03] All messages from [IPADDRESS] will be permanently deferred; Retrying will NOT …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照README在 FreeBSD 10.0-RELEASE 上配置多个 postfix-2.12 实例。
postmulti -e init
postmulti -I postfix-out -G mta -e create
...
Run Code Online (Sandbox Code Playgroud)
这一切都有效,我可以启动和停止实例,一切似乎都很好。当我测试使用 telnet 在本地发送电子邮件时。Postfix 记录以下fatal: unknown service: smtp/tcp错误。
master.cf 中的配置文件是vanilla no chroot。
mynetworks = 127.0.0.1/8 192.168.5.0/24
Run Code Online (Sandbox Code Playgroud)
如果我将 postfix 作为单个实例运行,一切正常。所以/etc/services当作为单个实例运行时,postfix 可以读取。
使用 postmulti 创建的 spool 目录看起来与 postfix spool dir 相同。
我一直在敲这个太久了。有没有人在 FreeBSD 上实现了多个 postfix 实例或者可以提供一些建议?
CentOS 7 Web 服务器安装了 postfix、dovecot 和 mailx。我已经能够与服务器建立 IMAP 连接,以便使用远程 Thunderbird 客户端读取收件箱邮件,但我无法建立 SMTP 连接以从 Thunderbird 发送电子邮件。当我进行取证时,我发现尝试的 SMTP 连接超时。 如何解决连接超时的问题,以便我可以通过服务器从 Thunderbird 发送电子邮件?
到目前为止,我的取证结果是:
hostname在服务器的终端中键入返回mydomain.com。
nano /usr/lib/firewalld/services/smtp.xml 表示 smtp 端口为 25
smtp 服务在公共区域被激活,因为firewall-cmd --list-all结果:
public (default, active)
interfaces: enp3s0
sources:
services: dhcpv6-client imaps openvpn smtp
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从我的 devbox telnet 到远程 CentOS 7 服务器时,我得到以下结果。打字telnet mydomain.com 25导致:
Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out
Run Code Online (Sandbox Code Playgroud)
然后输入telnet smtp.mydomain.com 25结果: …
从Roundcube仪表板中可以看到消息发送成功。
但是,当我检查时/var/log/mail.log,它显示如下:https:
//pasteid.fledix.com/5mat
它甚至没有收到其他电子邮件的消息。
我转到网络配置中的主机名和DNS 客户端,并将 DNS 服务器更改为、和。(它只有一个:那就是我的专用IP)127.0.0.18.8.8.88.8.4.4
我重新启动了saslauthd好postfix几次。
我将 Dovecot 服务器的 TLS 更改为默认值。
我完全是一个门外汉。
让我印象深刻的一件事是,当我登录 Webmin 面板时,系统主机名显示为,其中是我的专用 IP。在其他 Webmin 安装中,我看到它显示为.my chosen hostname (xxx.xxx.xxx.xx)xxx.xxx.xxx.xxxhostname (127.0.1.1)
有人可以帮我吗?