我有一个Postfix的configuration问题,让我头脑痒痒的几天,我正在向你伸出援助之手,找出问题所在,请在我解释我的设置的同时裸露在身上。 我有一个服务器上设置了Postfix多实例,每个实例都有自己的IP: 实例1:example.com(具有用于反弹/ fbl临时处理的邮箱的根域) 实例2:unsub.eg.example.com(具有用于未处理的邮箱的子域) 实例3:out1.eg.example.com(仅限出站) 实例4:out2.eg.example.com(仅限出站) 一切工作正常发送电子邮件,或接收域名unsub.eg.example.com电子邮件。 但是,发送电子邮件到[email protected]或[email protected]时,这四个实例中的任何一个都可以处理它,而不仅仅是example.com实例。 当由unsub,out1或out2select时,NOQUEUE:拒绝:RCPT来自:554 5.7.1:中继访问被拒绝; 错误由处理实例logging。 如果实例1碰巧拾起它,它被传递到邮箱没有问题。 因此,为什么其他实例正在挑选一个绑定到example.com的电子邮件呢? 以下是main.cf对于实例的高亮configuration,我认为这可能会导致问题: smtp.example.com queue_directory = /var/spool/postfix-smtp command_directory=/usr/sbin daemon_directory=/usr/libexec/postfix data_directory=/var/lib/postfix-smtp mail_owner=postfix syslog_name=pfix-smtp myhostname=smtp.example.com mydomain=example.com myorigin=$mydomain inet_interfaces=$myhostname inet_protocols=ipv4 mydestination=localhost mynetworks_style=host relay_domains= relayhost= home_mailbox=Maildir/ disable_vrfy_command=yes virtual_mailbox_domains=$mydomain virtual_mailbox_maps=hash:/etc/postfix/vmailbox smtpd_sasl_auth_enable=yes broken_sasl_auth_clients=yes smtpd_sasl_type=dovecot smtpd_sasl_path=private/auth smtpd_sasl_security_options=noanonymous smtpd_recipients_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_sender_restrictions=reject_unknown_sender_domain smtpd_sasl_local_domain local_recipient_maps=$alias_maps,$virtual_mailbox_maps unsub.eg.example.com queue_directory = /var/spool/postfix-unsub command_directory=/usr/sbin […]
我有一个Web服务器,我已经安装了Postfix只发送电子邮件。 所有传入的邮件将由谷歌应用程序处理,而不是我的networking服务器。 使用iptables规则,我已阻止所有传入的端口(包括端口25),并只打开ssh和http端口。 所有出站stream量都已打开。 从testing中我可以看到,即使端口25被阻塞,postfix也能够发送电子邮件,所以这不是问题。 我的理解是25端口只需要打开,如果我在该服务器上收到电子邮件。 但是我在编码恐怖网站上读到这个让我困惑了一下: Port25提供了一个非常漂亮的公共服务 – 您可以发送电子邮件至[email protected],它会以广泛的诊断回复from:address! 所以我的问题是,一些邮件服务器ping我的端口25检查我的服务器来源的真实性,当Postfix发送邮件给他们? 如果Postfix只用于发送电子邮件,我是否还需要打开端口25,以便其他邮件服务器可以validation我的服务器信息? 我担心,如果我阻止端口25,是否有一些电子邮件客户端将我的邮件标记为垃圾邮件的另一个原因,因为他们无法通过ping到端口25获取我的服务器上的信息? 我无法find这方面的信息。 如果有人能澄清这个PLZ,我将不得不承担责任。
我的雇主给了我一个电子邮件地址[email protected] 。 我的雇主的外发邮件服务器只允许从他们的networking内部连接(而不是像一个坚持通过他们连接使用他们的SMTP服务器的ISP)。 所以当我到咖啡厅吃午饭,老板的电子邮件到达我的电话时,我不能回复,直到我回到办公室。 另外,在旅行或在外地工作时,我无法回复电子邮件。 我不允许重新configuration主邮件服务器,但我有一个小的单独的Postfix服务器,我可以控制。 我在那里设置了许多虚拟域,并且将myemployersdomain.com添加为一个附加的虚拟域,将[email protected]为一个虚拟用户。 这个工作,我可以通过这个服务器发送到世界任何地方,除了myemployersdomain.com(这是我真正想要的)上的其他用户。 当我尝试发送到[email protected]我得到 NOQUEUE:拒绝:来自…的RCPT 550 5.1.1 …收件人地址被拒绝:虚拟邮箱表中的用户未知 Postfix服务器认为它控制着所有myemployersdomain.com,如果我没有为这个域上的收件人设置一个虚拟用户,那么它不允许它。 我可以通过在虚拟文件中设置一个catchall别名来使错误消失 @myemployersdomain.com [email protected] 但当然,我发送的所有电子邮件都会直接返回给我! 我尝试设置传输文件来传递myemployersdomain.com的所有邮件,比如说像这样的gmail: example.com : myemployersdomain.com smtp:[smtp.gmail.com]:587 但是没有区别。 (中继按照预期的方式工作在其他(外部)域的收件人地址,但是对于这个虚拟域,Postfix不允许你达到这个目的 – 5.1.1错误首先出现。 是否有可能configurationPostfix将发往本地定义的虚拟域的邮件发送到大型互联网,并让DNS将其排除?
我使用Postfix在邮件发送到特定地址时运行脚本。 该脚本是一个Perl脚本,它使用Log4perl将日志写入文件。 Log4perl每天都在轮转日志文件。 除了一个小angular落的情况下,它运作良好。 日志文件大小超过50MB时,脚本无法写入日志文件。 在对Postfix进行一些研究之后,看起来这可能是Postfix的一个限制。 这是postconf中可能相关的输出的一部分。 $ postconf | grep size berkeley_db_create_buffer_size = 16777216 berkeley_db_read_buffer_size = 131072 body_checks_size_limit = 51200 bounce_size_limit = 50000 header_size_limit = 102400 mailbox_size_limit = 51200000 message_size_limit = 10240000 tcp_windowsize = 0 $ postconf | grep virtual_mailbox_limit virtual_mailbox_limit = 51200000 是否有任何可以更改的选项来删除从脚本创build的日志文件的文件大小的50MB限制 ? 以下是完整性的Log4perl设置。 $ cat /some/path/to/my/log4perlsettings.cfg log4perl.logger.mylog = DEBUG,LOGGER log4perl.appender.LOGGER = […]
我正在使用Postfix / Dovecot / Roundcube安装程序,目标是可以通过Internet发送邮件的虚拟用户邮件系统,如此处所述。 一切似乎运作良好; 鸽舍显示没有问题,我可以telnet到我的所有港口; 然而,每当我尝试通过Roundcube发送邮件,我得到的错误: SMTP Error (220): Authentication failed. 而从日志: [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) 自从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] […]
我已经在我的VPS上设置了一个POSTFIX服务器,并通过邮件发送到Gmail中的垃圾邮件。 这是我的信息: Delivered-To: [email protected] Received: by 10.140.43.75 with SMTP id d69csp350632qga; Mon, 19 Jan 2015 15:29:29 -0800 (PST) X-Received: by 10.194.89.39 with SMTP id bl7mr6149887wjb.76.1421710169272; Mon, 19 Jan 2015 15:29:29 -0800 (PST) Return-Path: <[email protected]> Received: from mail.sgenov.com (mail.sgenov.com. [192.81.221.174]) by mx.google.com with ESMTP id j9si29338582wjy.109.2015.01.19.15.29.28 for <[email protected]>; Mon, 19 Jan 2015 15:29:29 -0800 (PST) Received-SPF: […]
例如,什么是replace后缀散列数据库的语法 domain.tld PREPEND my-header: foobar 用静态地图? docs将其定义为Example: "inline:{ key=value, { key = text with whitespace or comma }}" 。 有几种方法来取代它似乎不工作,甚至不清楚,有多less领域的哈希:DB真的有。 域是唯一的关键,其余的一个string? 是否应该有一些关联到域的列表语法? 那么一个具有多个值的键(在hash:db中以同一个域开始的多行)呢?
我在CentOS 7上,据我所知,Postfix在重新启动时所需要的就是运行systemctl enable postfix.service 但是,这不适合我。 重新启动后, systemctl status postfix产生以下内容: postfix.service – Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled) Active: inactive (dead) 在错误日志中没有logging错误,Postfix启动时工作正常,当我手动执行。 任何想法我做错了什么? 编辑:输出从cat /etc/systemd/system/multi-user.target.wants/postfix.service [Unit] Description=Postfix Mail Transport Agent After=syslog.target network.target Conflicts=sendmail.service exim.service [Service] Type=forking PIDFile=/var/spool/postfix/pid/master.pid EnvironmentFile=-/etc/sysconfig/network ExecStartPre=-/usr/libexec/postfix/aliasesdb ExecStartPre=-/usr/libexec/postfix/chroot-update ExecStart=/usr/sbin/postfix start ExecReload=/usr/sbin/postfix reload ExecStop=/usr/sbin/postfix stop [Install] WantedBy=multi-user.target
我想使用virtual_transport将传入的邮件传递给一个传输spamassassin (main.cf:virtual_transport virtual_transport=spamassassin ),然后使用sendmail将扫描的邮件重新注入postfix。 运输看起来像这样: spamassassin unix – nn – – pipe flags=hu user=vmail:mail argv=/usr/bin/spamc -u ${recipient} -e /usr/sbin/sendmail -f ${sender} ${recipient} 这应该是可能的,根据后缀文档 : 大量网站应避免使用通过Postfix sendmail(1)和postdrop(1)重新注入扫描邮件的“简单”内容filter。 用我当前的sendmail调用/usr/sbin/sendmail -f ${sender} ${recipient} ,邮件循环回到队列,然后返回到spamassassin等等。 从我对postfix文档的理解中,使用postfix sendmail发送的sendmail被放在maildrop目录中,然后用pickup 。 我试图追加一个-o virtual_transport=dovecot到皮卡运输,以避免队列,但这并没有帮助。 (这些选项只能附加到SMTP传输我想)。 我怎样才能将用spamassassin扫描的邮件重新input到队列中进行最终交付,而不会导致循环?
对于我目前正在处理的项目,我们收到了对“dynamic”邮件附件大小限制的要求。 对于后缀(我们目前使用),这将很容易实现使用message_size_limitconfiguration选项。 但是,这防止用户发送附件的电子邮件。 我们的用例需要两个不同的限制。 在某些情况下,应用下限,但这对用户应该是透明的。 他们仍然应该能够发送附件的电子邮件,该附件的尺寸小于最大限制。 所以我们想要阻止“邮件太大”的拒绝邮件,而是排队邮件以便在以后再次尝试发送邮件。 所以当附件的大小限制再次增加时,邮件仍然会被传送给收件人。 背景 对于有时可能连接到慢速卫星上行链路的船只,其他时间连接到高速上行链路,我们需要这种能力。 对于高速上行链路,大附件(<20MB)并不是什么大问题,但对于非常低带宽的卫星连接来说,这成为一个问题,所以我们想要限制附件大小。 但是这对于用户来说是不可见的,因为他不知道当前的上行链路types。