我有一个postfix邮件服务器,它使用mail()通过PHP脚本从虚拟地址和本地Unix帐户发送电子邮件。
我安装了Amavis并成功配置了虚拟地址的过滤和添加邮件签名,但是没有为本地帐户发送的任何邮件添加签名(例如通过脚本或邮件命令)< / p>
我尝试了一堆配置和路由更改,但没有运气 - 有没有人请知道如何过滤这样的本地外发邮件?
谢谢!
答案 0 :(得分:2)
为了将来参考,答案是后缀配置设置:
non_smtpd_milters =
后缀内容过滤设置(content_filter)似乎不适用于非smtpd流量,例如Unix帐户或PHP mail()脚本发送的流量。
实际上这是错误的。来自邮件列表上的Stef 未通过milter界面实现更改邮件正文:
查看以下文档: - http://www.amavis.org/README.postfix.html - http://www.postfix.org/FILTER_README.html [高级内容过滤器示例]
快速浏览配置文件[这是我的配置文件中的快速剪切和粘贴;请注意端口号可能与上述文档不匹配]:
/etc/amavisd.conf
$notify_method = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';
$inet_socket_port = [10024, 10026];
$interface_policy{'10026'} = 'ORIGINATING';
$policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users
originating => 1, # declare that mail was submitted by our smtp client
allow_disclaimers => 1, # enables disclaimer insertion if available
}
/etc/postfix/master.cf
smtp inet n - n - - smtpd
-o content_filter = smtp-amavis:[127.0.0.1]:10024
[您也可以将/etc/postfix/main.cf中的上述config_filter配置作为默认设置。 以下选项将覆盖main.cf]中的默认值
smtp-amavis unix - - n - 4 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
-o smtp_generic_maps=
localhost:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_delay_reject=no
-o smtpd_authorized_xforward_hosts=127.0.0.0/8,[::1]/128
-o smtpd_authorized_xclient_hosts=127.0.0.0/8,[::1]/128
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8,[::1]/128
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o local_header_rewrite_clients=
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
pickup unix n - n 60 1 pickup
-o content_filter=smtp-amavis:[127.0.0.1]:10026
快速评论: - 传入的电子邮件进入端口25;使用“content-filter”选项,它将被发送到端口10024上的mavis - amavis扫描,标签,隔离,...... - 如果邮件通过,它会转到(后缀)端口10025(这是通过amavisd.conf中的“$ forward_method”完成的) - postfix(侦听端口10025)发送电子邮件
亲切的问候,
燕姿
答案 1 :(得分:0)
我遇到了类似的问题(在我的例子中,我使用 amavis 添加了 dkim 签名),结果证明问题在于,在 master.cf 中,取件服务是用“-o content_filter=”定义的,那就是为什么 content_filter 不适用于本地生成的电子邮件,即
pickup fifo n - n 60 1 pickup
-o content_filter=
-o receive_override_options=
一旦我注释掉“-o content_filter=”,amavis 甚至开始过滤本地生成的消息。
我正在添加一个解决方案,因为我无法添加评论,这是我搜索“postfix content_filter 不适用于本地生成的邮件”时的第一个结果。