我正在建立一个内容过滤器对于 Postfix(通过 apt 在 Ubuntu 12.04 测试虚拟机上安装 2.9.3 包),我从一个非常基本的 Ruby(1.9.3)模板开始构建功能。奇怪的是,当启用脚本时,发送的消息会正常转发,但也会发送回发件人,这是不正常的。禁用脚本会禁用此行为。有什么建议告诉我需要更改什么才能阻止这种情况发生?感谢您的任何建议!
/etc/postfix/master.cf(仅更改了默认的行)
smtp inet n - - - - smtpd -o content_filter=dumper:dummy
...
dumper unix - n n - 10 pipe
flags=RF user=mailuser argv=/home/mailuser/mailfilter/dumper.rb ${sender} ${recipient}`
/home/mailuser/mailfilter/dumper.rb
#!/usr/bin/env ruby
require 'open3'
dir="/home/mailuser/emails"
logfile="maillog.log"
message = $stdin.read
cmd = "/usr/sbin/sendmail -G -i #{ARGV[0]} #{ARGV[1]}"
stdin, stdouterr, wait_thr = Open3.popen2e(cmd)
stdin.print(message)
logfile = File.open("#{dir}/#{logfile}", 'a')
logfile.write(stdouterr)
stdin.close
stdouterr.close
exit(0)
答案1
那是因为你忘了-r
前面的#{ARGV[0]}
:)