我按照postfix网站上有关如何设置内容filter的说明 ,我简单的举了一个例子,运行得相当快,但经过长时间的努力,我无法使高级filter工作。 我在示例中设置了一切,smtp在端口25上侦听未经过滤的消息,它具有一个filter设置为将消息传递到调用filter脚本的端口10025,另一个smtp侦听器在端口10026上过滤消息。 在简单的示例中,脚本是消息stream中的最后一个停止,它通过标准input获取消息,并使用sendmail重新执行它。 在先进的例子中,我似乎没有得到消息,似乎不能传递。 我成功地设法返回:'550内容被拒绝'的回应。 我想我的问题是脚本如何接收邮件正文,它是如何返回到邮件队列? 我怎样才能使这一切工作? main.conf: content_filter = scan:localhost:10025 master.conf: scan unix – – n – 10 smtp -o smtp_send_xforward_command=yes -o disable_mime_output_conversion=yes -o smtp_generic_maps= localhost:10025 inet nnn – 10 spawn user=filter argv=/home/omri/filter.sh localhost 10026 localhost:10026 inet n – n – 10 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= […]
据我所知,我需要在端口25 SMTP接收电子邮件,但我不希望这是一个中继端口。 相反,我将端口587用于注册(SASLauthentication)的用户从任何IP地址,通过我的服务器,以及任何电子邮件服务器(如GMail,雅虎)中继电子邮件。 我已经build立了Postfix来接收电子邮件,并对用户进行身份validation,但是我对25和587端口之间的区别以及如何使用端口接收和中继之间的区别感到十分困惑。 这是我的main.cf目前的相关部分。 myhostname = mx.example.com mydomain = example.com #myorigin = $mydomain mydestination = localhost localhost.localdomain mynetworks_style = host smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, # reject_unauth_destination is not needed here if the mail # relay policy is specified under smtpd_relay_restrictions # (available with Postfix 2.10 and […]
我一直在试图了解Gmail为什么将从我的域/服务器发送的电子邮件视为垃圾邮件。 我在这里发现了很多关于这个问题的线索,但是我检查了像域密钥,spf等通常的嫌疑人 我的电子邮件被Outlook.com接受,根据我的理解,它有更多的侵略性垃圾邮件filter。 我使用[email protected]了我的configuration,我得到了这个: SPF check: pass DomainKeys check: neutral DKIM check: pass Sender-ID check: pass SpamAssassin check: ham 一切都很好。 发送电子邮件到一个Gmail帐户后,我得到这在标题下: Received-SPF: pass (google.com: domain of [email protected] designates 89.xx8 as permitted sender) client-ip=89.xxx; Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 89.xx8 as permitted sender) [email protected]; dkim=pass [email protected] 正如你所看到的,这封电子邮件在spf和dkim上传递,没有gmail服务器上的问题。 最后,我在http://mxtoolbox.com/blacklists.aspx查看了我的服务器IP,主机名和域,查看了RBL块,他们没有在任何地方列出。 为什么Gmail将我的邮件视为垃圾邮件? 这是没有道理的,我已经遵守每一个良好的做法。 其他说明: 反向DNS也可以; 除了Email […]
我使用transport表来指定特定域的下一跳: 主持人A: /etc/postfix/transport domain.com smtp:[mail.host2.com]:25 Host A使用查找表来validation本地收件人: local_recipient_maps = proxy:unix:passwd.byname $alias_maps unknown_local_recipient_reject_code = 550 但是我想知道是否有一种方法可以在SMTP时从Host AvalidationHost B上的远程收件人,以避免NDR伪造电子邮件。 更新:7月28日星期一13:49:01 BST 2014: 它看起来像Exim可以通过LMTP进行收件人电子邮件validation,所以我想知道Postfix是否可以做到这一点? # Perform recipient verification deny message = Recipient verification failed, Non-existent mailbox log_message = Recipient verification failed !verify = recipient/callout=2m,use_postmaster,defer_ok
我必须复制一个邮件帐户的传入和发送到另一个邮件帐户在同一台服务器以及。 我怎样才能做到这一点? 服务器是一个debian wheezy运行dovecot,roundcube和后缀。 正如我所说,电子邮件不只是一个别名,而是一个现有的邮箱。 传入邮件的复制可以通过用户configuration文件中的筛选文件轻松完成: 01_forward.sieve require ["fileinto"]; fileinto "Inbox"; redirect "[email protected]"; 但至于获得转发到[email protected]的每个发送的信件的副本。 我不知道如何解决这个问题。
我无法弄清楚下面的错误信息是什么意思。 只要从192.168.xx地址的邮件服务器推送邮件,它就会popup日志。 postfix / smtpd [1337]:警告:hostname example.com未parsing为地址93.184.216.119 然而,domaion解决了这个地址,只有一个Alogging(而/ etc / hosts中的127.0.1.1) $ dig example.com example.com。 3600中A 93.184.216.119 虽然反向DNS是不正确的,那不是什么警告说,也不解释为什么它只是由LAN邮件触发。 通过tcpdump证实,局域网邮件服务器ehlo的子域sub.example.com是后缀服务器已知的192.168.1.99。 任何想法如何进行debugging? 如何找出导致警告的原因? 任何帮助非常感谢。 $ postconf -d | grep smtpd_helo_restrictions smtpd_helo_restrictions = permit_mynetworks,reject_unknown_helo_hostname
我有一个名为smtp-ca.mdpi.com的SMTP服务器,当发送电子邮件到一些特定的中文电子邮件域时,我回来了: 550 Requested mail action not taken: Invalid IP<64.15.147.140> (in reply to end of DATA command)) 我在域的TXT中设置了一个SPF。 rDSN工作正常。 任何想法为什么发生这种情况 先谢谢你。 编辑:这是postconf -nconfiguration alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = 127.0.0.1 10.10.0.10 local_transport = error:local delivery is disabled mailbox_size_limit = 0 message_size_limit = 102400000 myhostname = smtp-ca.mdpi.com mynetworks = […]
我有4台服务器。 prod1.example.com,prod2.example.com,dev1.example.com和dev2.example.com。 他们都发送邮件到smtp.example.com。 该服务器执行中继。 现在我想让dev1和dev2把所有的电子邮件发送到[email protected],除了发送给[email protected]的电子邮件。 来自prod1和prod2的电子邮件没有任何限制地被转发。 我读到的访问文件中,你可以定义一个服务器必须由一个filter,而不是一个简单的中继(与FILTER foo:栏)处理。 我找不到如何以及在哪里需要定义这个foo(transport)和bar(destination)。 这些不同的参数混淆了我。 另外在不同的文件处理的顺序是什么? 有人可以帮我吗?
我想要更改Message-ID头或更好,丢弃它。 我知道每个人都会问“你为什么要这么做?” 因为我知道这听起来很奇怪,甚至写它。 那么我正在开发一个系统,以EML格式保存传入的电子邮件,更改并发送给用户,有时用户可以请求将原始EML发送给他/她。 问题是,当我重新发送EML时,它具有相同的Message-ID头,导致交换服务器丢弃重发。 当然,我希望通过postfix有一些select,否则我将需要parsing和更改EML,但我宁愿不这样做。 我试图做到这一点与“header_checks”,它的工作原理,但我需要能够做到这一点有条件地,这意味着只有在特定的场合,我可以通过查看其他标题,我想删除消息ID。
所以我build立了一个postfix邮件服务器,我可以发送,我可以收到。 但我注意到我的日志中有一些有趣的活动。 我正在testing一个意外发送到不存在的电子邮件地址,现在另一个域上的邮件服务器正在尝试(不放弃)提供失败的传送通知。 对于这个例子,我的域名是example.com,我发送电子邮件的域是example.net,我发送了一封电子邮件到一个无效的地址。 当然,example.net邮件服务器说:“嘿,这个地址不存在”,并且想要给我发一封邮件说这个地址不存在。 这是日志 Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: connect from remote.example.net[12.34.56.78] Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: NOQUEUE: reject: RCPT from remote.example.net[12.34.56.78]: 450 4.1.1 "[email protected]": Recipient address rejected: User unknown in local recipient table; from=<> to= "[email protected]" proto=ESMTP helo= "mail.otherdomain.local" Jan 27 08:50:37 UBUNTU-SRV postfix/smtpd[10508]: disconnect from remote.example.net[12.34.56.78] 我的直觉是,我的服务器说,“是否[email protected]”有一个用户帐户? 答案显然是否定的,所以拒绝。 这些日志现在每天都在运行一分钟。 任何想法要么把这个电子邮件放在正确的箱子或最低限度的路线所有这些东西在我的箱子目录现在?