我按照以下教程在 Debian Squeeze 上使用 Dovecot、Postfix 和 AMaViS 设置了邮件服务器workaround.org(Debian Squeeze 的 ISPmail 教程)。它使用虚拟域并将域、电子邮件地址和帐户存储在 MySQL 数据库中。
一切正常 – 除了我缺少一些电子邮件标题。
收到的标头:
- X-隔离区 ID
- X-病毒扫描
(使用“真正的”垃圾邮件并使用 GTUBE )sendmail [email protected] < /usr/share/doc/spamassassin/examples/sample-spam.txt
缺少标题:
- X-垃圾邮件标志
- X-垃圾邮件评分
- X-垃圾邮件级别
- X-垃圾邮件状态
但垃圾邮件的主题被更改了。所以我的设置是正确的,不是吗?
我该如何获取邮件中缺失的标题?
这是我的 AMaViS 配置文件 ( /etc/amavis/conf.d/50-user
)
use strict;
#
# Place your configuration directives here. They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
# see <http://workaround.org/ispmail/squeeze/content-scanning-amavis>
$sa_spam_subject_tag = '*** SPAM *** ';
$final_spam_destiny = D_PASS;
$sa_tag_level_deflt = -9999; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
@lookup_sql_dsn = ([
'DBI:mysql:database=mailserver;host=127.0.0.1;port=3306',
'mailuser',
'password'
]);
$sql_select_policy = 'SELECT name FROM virtual_domains WHERE CONCAT("@",name) IN (%k)';
#------------ Do not modify anything below this line -------------
1; # ensure a defined return
如果您需要更多配置文件、日志输出或其他任何内容,请在下面发表评论,我会使用您需要的信息更新我的帖子:-)
答案1
您是否检查过此参数:@local_domains_acl
它的定义见/etc/amavis/conf.d/05-domain_id
。根据 Amavisd-new 的文档http://www.ijs.si/software/amavisd/:
没有插入垃圾邮件相关标头?以下是一些原因:
- @local_domains_acl 设置不正确。这些标头仅插入到与 @local_domains_acl 查找(或 SQL 查找中的 %local_domains 或 $local_domains_re 或字段“local”)匹配的收件人;
- (...)
检查此命令的输出:head -n 1 /etc/mailname
如果您无法准确获取域名,Amavisd 将不会对您的电子邮件标题进行任何更改。如果您想强制添加 X-Spam-* 标题,则可以添加类似以下@local_domains_acl = ( "." );
内容/etc/amavis/conf.d/50-user
答案2
(这实际上是对上一个答案的评论,但声誉系统不允许我这样做)
设置@local_domains_acl = ( "." )
对我来说很有效,但它似乎是一种相当生硬的工具(即,垃圾邮件处理所有邮件,无论是进还是出)。尝试了许多替代方案后,我最终发现包括localhost
也会有所帮助(我正在同一个盒子上测试送货服务)。因此,/etc/amavis/conf.d/50-user
我有类似的东西:
@local_domains_acl = ( ".mydomain.example.org", "localhost" );
我看到所发送的邮件中添加了垃圾邮件标头。
(我在这里的测试设置是 Ubuntu 14.04 服务器、postfix、amaviz、spamassassin,全部从标准 Ubuntu 存储库安装。)
答案3
命令的输出head -n 1 /etc/mailname
必须是您的域,例如example.com
。
mail.example.com
如果输出类似这就是问题所在。
因此,你可以通过更改文件来解决这个问题/etc/amavis/conf.d/05-domain_id
解决方案 #1
里面/etc/amavis/conf.d/05-domain_id
:
改变:
chomp($mydomain = `head -n 1 /etc/mailname`);
到:
chomp($mydomain = `hostname -d`);
PS: 的输出hostname -d
必须是您的域,例如example.com
。
解决方案 #2
里面/etc/amavis/conf.d/05-domain_id
:
改变:
chomp($mydomain = `head -n 1 /etc/mailname`);
到:
$mydomain = "example.com";